是否可以动态创建LayerGroups?我正在开发一张网络地图,显示公园中存在的树种,我正在尝试为每种树种创建一个LayerGroup,以便使用LayerControl我可以隐藏并显示某些树种,以便进行测试。一直在创建这样的LayerGroups:

l1 = new L.LayerGroup();
//...
l100 = new L.LayerGroup();


而且我敢肯定,有一种方法可以根据存在的物种数量来做到这一点,我已经尝试过:

for (var i = 0; i < numberOfSpecies ; i++) {
  l[i] = new L.LayerGroup();
}


但是这样,我不能这样做:

l[0].addLayer(marker);


做这样的事情的最好方法是什么?

最佳答案

是的你可以。
例如:

var layerGroups = {}

for (var i = 0; i < 3; ++i) {
    layerGroups[i] = L.layerGroup().addTo(map);
}

for (var i = 0; i < 3; ++i) {
    layerGroups[i].addLayer(L.marker([i,i]))
}


您可以在这里尝试:https://jsfiddle.net/mckbda9y/6/

09-25 19:01