Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to find layer group from layer in Openlayers 3?

I'd like to be able to tell what ol.layer.Group(s) a layer is part of during a user interaction, without going through all the groups on the map top-down.

Is there a way to do this? I'm currently using ol3 v3.10.2.

like image 950
ryansstack Avatar asked Mar 15 '23 09:03

ryansstack


2 Answers

During initialising of your layers asign an attribute, on each layer, to verify the group this layer belongs to. like so:

var vector = new ol.layer.Vector({
  GROUP : 'group1',
  source: vectorSource,
  style: new ol.style.Style({
        image: new ol.style.Circle({
            radius: 5,
            fill: new ol.style.Fill({color: '#FFFFFF'}),
            stroke: new ol.style.Stroke({
                color: '#000000',
                width: 3
            })
        })
    })
});

and then you may get the group like so:

layer.get('GROUP');
like image 108
pavlos Avatar answered Mar 20 '23 17:03

pavlos


Looking at the ol.layer.Group, ol.collection and goog.array, none of these set an backwards reference to the layer. So you'll have to dig down trough all the groups, as far as I can see.

like image 21
Crischan Avatar answered Mar 20 '23 19:03

Crischan