我需要在地图上方有一个可选的叠加层,如果选择了某个地图(如果在LayerControl中打开layerX,layer1将被layer2替换,以及何时(Tile,则在leaflet.js中的两个不同WMS层之间切换) )layerX不再被选中,再次用layer1替换layer2),所以我在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处于启用状态,则显示Layer1,在其他情况下则显示Layer2。 (并且图层本身是可选的)
答案 0 :(得分:0)
实例化一个L.Control.Layers
,然后在该控件中添加两个L.TileLayer.WMS
作为“基础层”。
这个名字可能是骗人的:这意味着,对于给定的L.Control.Layers
,作为“基础层”传递的层是互斥的。它们并不需要成为主题上的基础层,并且您可以有多个L.Control.Layers
,并且每个中都有一组互斥的L.Layer
。