清除传单地图中的所有多段线

新手上路,请多包涵

我正在努力清除地图中的所有多段线,我只清除了最新的。

 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 被调用多次,clear Polylines 被调用一次。如何清除地图上的所有多段线?

原文由 Vince Lowe 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 581
2 个回答

您必须全部记住它们,或者稍微作弊并查看 map._layers 以找到它们。

通过@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]);
            }
        }
    }
}

原文由 flup 发布,翻译遵循 CC BY-SA 3.0 许可协议

您可以将多段线添加到 layerGroup 并轻松地将其添加到地图或从地图中删除。是这样的:

 pLineGroup = L.layerGroup()
var latlngs = [
    [45.51, -122.68],
    [37.77, -122.43],
    [34.04, -118.2]
];
this.pLineGroup.addLayer(L.polyline(latlngs, {color: 'red'}))
pLineGroup.addTo(map)
pLineGroup.removeFrom(map)

原文由 RezaNikfal 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题