从单张地图清除所有折线(Clear all polylines from leaflet map)

2019-08-08 17:22发布

我挣扎着从我的地图中清除所有的折线,我只能清除最新的。

var polylines;

// add map polylines
function addPolyline(polyArray, colour) {
    polylines = L.polyline(polyArray, {color: colour});
    polylines.addTo(map);
}

// clear polylines   
function clearPolylines() {
    map.removeLayer(polylines);
}

其中addPolylines被多次调用,清晰折线被调用一次。 如何清除所有地图上的折线?

Answer 1:

你必须记住它们全部或者欺骗了一下,偷看map._layers找到他们。

EDIT通过@Ben添加示例代码:

function clearMap() {
    for(i in m._layers) {
        if(m._layers[i]._path != undefined) {
            try {
                m.removeLayer(m._layers[i]);
            }
            catch(e) {
                console.log("problem with " + e + m._layers[i]);
            }
        }
    }
}


Answer 2:

下面将删除这两个多边形和标记,但在后台继续图像片:

for (i in map._layers) {
    if (map._layers[i].options.format == undefined) {
        try {
            map.removeLayer(map._layers[i]);
        } catch (e) {
            console.log("problem with " + e + map._layers[i]);
        }
    }
}


文章来源: Clear all polylines from leaflet map