如何在layerswitcher中取消选择图层并仅保存变量中的选定图层

时间:2013-02-20 22:11:50

标签: openlayers layer arrays

感谢Richard Greenwood,此函数显示了layerswitcher控件中未选中的图层。

map.events.register('changelayer', null, function(evt){
       if(evt.property === "visibility") {
          alert(evt.layer.name + " layer visibility changed to " + evt.layer.visibility );
       }
});

我想知道如何在变量数组中保存未选择的图层。例如,我在层切换器中有层“a”,“b”,“c”,因此“a”未被选中,我希望“b”和“c”保存在像myarray = [b,c]这样的数组中。然后,我可以遍历这个数组来做一些只调用层“b”和“c”的进程。

我很感激有关这方面的一些想法,提前谢谢,

1 个答案:

答案 0 :(得分:2)

例如:

var vlayers = [];
function get_vlayers(){
  vlayers = [];    
  for (var i=0; i<map.layers.length; i+=1) {
    if (map.layers[i].visibility) {
      vlayers.push(map.layers[i]);
    }
  }
}
map.events.register('changelayer', null, get_vlayers)
相关问题