以编程方式删除Leaflet overlayMaps图层

时间:2017-07-26 17:03:56

标签: leaflet layer clear

使用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图层的方法,除非您自己取消选中它。

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

1 个答案:

答案 0 :(得分:2)

不完全确定以编程方式从地图中删除某些图层/叠加层的难度。

通常是微不足道的(var obj = {a:"a",b:"b"} ///{a: "a", b: "b"} var keys = Object.getOwnPropertyNames(a) ///(2) ["a", "b"] ),并且图层控件会自动反映地图上发生的事情(在这种情况下,如果map.removeLayer(layer)是其中一个叠加层,则其关联的复选框将变为未选中状态)。

至于从地图中删除所有叠加层,您只需要保留对这些叠加层的引用,循环遍历它们并将其从地图中删除:

layer

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

相关问题