如果选择了某个地图(如果在LayerControl中打开了layerX,layer1将由layer1替换为layer2,当(切片)layerX不再被选中时,请再次将layer2替换为layer1),我需要在地图上方有一个可选的覆盖,以便在overlayadd和overlayremove (
map.on('overlayadd', function(layer){if(layer.name === "layerX"){
layers_on = !!map.hasLayer(layer1);
layer1.remove();
layer_selector.removeLayer(layer1);
if(layers_on){map.addLayer(layer2);
layer_selector.addOverlay(layer2, "layer2");
}});
map.on('overlayremove', function(layer){if(layer.name === "layerX"){
layers_on = !!map.hasLayer(layer2);
layer2.remove();
layer_selector.removeLayer(layer2);
if(layers_on){map.addLayer(layer1);}
layer_selector.addOverlay(layer1, "layer1");
}});代码在打开LayerX时运行良好,但是当我在layer2打开的情况下删除它时,它实际上并没有删除它,只是在layer_control中替换它,并在其上添加layer1
简单地说,我需要在LayerControl中动态显示两个地图之一的覆盖,如果LayerX in on则显示Layer1在其他情况下显示Layer2。(层本身是可选的)
发布于 2018-10-26 03:53:06
实例化一个L.Control.Layers,并在该控件中添加两个L.TileLayer.WMS作为“基本层”。
这个名称可能具有欺骗性:它的意思是,对于给定的L.Control.Layers,作为“基础层”传递的层是相互排斥的。它们不需要是主题上的基础层,而且你可以有多个L.Control.Layers,每个都有一组互斥的L.Layer。
https://stackoverflow.com/questions/52985155
复制相似问题