使用Leaflet javascript。我想要我的"清除按钮"做两件事......
1)取消选中所有L.Control图层 2)从地图中删除当前叠加
我可以使用此代码轻松完成第一个:
var checks = document.querySelectorAll('[type = "checkbox"]'), i;
function uncheckBoxes() {
for (i = 0; i < checks.length; ++i) {
checks[i].checked = false;
}
}
接下来会有点棘手。我尝试过使用removeLayer()和clearLayers()函数,但它们不起作用。我没有在传单文档中看到从地图中删除L.control overlayMap图层的方法,除非您自己取消选中它。
对此的任何见解将不胜感激。
答案 0 :(得分:2)
不完全确定以编程方式从地图中删除某些图层/叠加层的难度。
通常是微不足道的(var obj = {a:"a",b:"b"}
///{a: "a", b: "b"}
var keys = Object.getOwnPropertyNames(a)
///(2) ["a", "b"]
),并且图层控件会自动反映地图上发生的事情(在这种情况下,如果map.removeLayer(layer)
是其中一个叠加层,则其关联的复选框将变为未选中状态)。
至于从地图中删除所有叠加层,您只需要保留对这些叠加层的引用,循环遍历它们并将其从地图中删除:
layer