gpt4 book ai didi

leaflet - 以编程方式删除 Leaflet overlayMaps 层

转载 作者:行者123 更新时间:2023-12-04 03:05:03 29 4
gpt4 key购买 nike

使用 Leaflet javascript。我希望我的“清除按钮”能做两件事...

1) 取消选中所有 L.Control 层2) 从 map 中移除当前叠加层

我可以使用这段代码轻松完成第一个:

var checks = document.querySelectorAll('[type = "checkbox"]'), i;
function uncheckBoxes() {
for (i = 0; i < checks.length; ++i) {
checks[i].checked = false;
}
}

接下来有点棘手。我试过使用 removeLayer() 和 clearLayers() 函数,但它们不起作用。我在传单文档中看不到从 map 中删除 L.control overlayMap 图层的方法,除非您自己取消选中它。

任何对此的见解都将不胜感激。

最佳答案

不确定以编程方式从 map 中删除某些图层/叠加层有什么困难。

它通常是微不足道的 (map.removeLayer(layer)),图层控件会自动反射(reflect) map 上发生的事情(在这种情况下,如果 layer 是其中一个叠加层,其关联的复选框将取消选中)。

至于从 map 中移除所有叠加层,您只需要保留对这些叠加层的引用,遍历它们并将它们从 map 中移除:

var overlays = {
'Name 1': someLayer,
'Name 2': someOtherLayer
};

L.control.layers(null, overlays).addTo(map);

// Whenever you want to remove all overlays:
for (var name in overlays) {
map.removeLayer(overlays[name]);
}

演示:https://jsfiddle.net/3v7hd2vx/357/

关于leaflet - 以编程方式删除 Leaflet overlayMaps 层,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45333282/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com