首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在leaflet.js中的两个覆盖之间切换

在leaflet.js中的两个覆盖之间切换
EN

Stack Overflow用户
提问于 2018-10-25 16:50:32
回答 1查看 466关注 0票数 0

如果选择了某个地图(如果在LayerControl中打开了layerX,layer1将由layer1替换为layer2,当(切片)layerX不再被选中时,请再次将layer2替换为layer1),我需要在地图上方有一个可选的覆盖,以便在overlayadd和overlayremove (

代码语言:javascript
复制
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。(层本身是可选的)

EN

回答 1

Stack Overflow用户

发布于 2018-10-26 03:53:06

实例化一个L.Control.Layers,并在该控件中添加两个L.TileLayer.WMS作为“基本层”。

这个名称可能具有欺骗性:它的意思是,对于给定的L.Control.Layers,作为“基础层”传递的层是相互排斥的。它们不需要是主题上的基础层,而且你可以有多个L.Control.Layers,每个都有一组互斥的L.Layer

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52985155

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档