我挣扎着从我的地图中清除所有的折线,我只能清除最新的。
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被多次调用,清晰折线被调用一次。 如何清除所有地图上的折线?
你必须记住它们全部或者欺骗了一下,偷看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]);
}
}
}
}
下面将删除这两个多边形和标记,但在后台继续图像片:
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]);
}
}
}