我正在通过xhr
调用创建一堆矢量图层,并希望将其添加到图层组并将该图层组添加到图层控件。我的想法是
1. Add a layer control to the map with only the base layer in the control
2. Create a layer via `xhr`
2.1. Check if layer group LG exists in layer control
2.1.1. If yes, add layer to LG
2.1.2. If no, add layer group LG to layer control and add layer to LG
3. Repeat #2 above.
好吧,我尝试了上面的内容(没有图层组部分)并且有效(下面的代码)。
LC = L.control.layers({'OSM': osm}).addTo(map);
然后
x.onload = function(e) {
if (x.readyState === 4) {
if (x.status === 200) {
var res = JSON.parse(x.responseText);
..
LC.addOverlay(lyr, "layer name");
}
}
};
但是,我无法通过图层组来做到这一点。建议欢迎。
答案 0 :(得分:8)
在你的ajax回调中,你应该找到
layerGroup = L.layerGroup()
.addLayer(vector1))
.addLayer(vector2))
.addLayer(vector3))
....
.addTo(map);
if(layerControl === false) { // var layerControl set to false in init phase;
layerControl = L.control.layers().addTo(map);
}
layerControl.addOverlay(layerGroup , "My batch of vectors");