Leaflet 在创建新多段线之前,从地图中删除所有多段线

Leaflet 在创建新多段线之前,从地图中删除所有多段线,leaflet,polyline,Leaflet,Polyline,我正在使用传单显示地图并创建多段线。 我想在创建任何新多段线之前删除所有多段线 创建多段线时 我将所有多段线存储在数组-$scope.polycoords=[] 要删除所有多段线,我使用以下代码 for(var i = 0; i< $scope.polycoords.length; i++){ map.removeLayer($scope.polycoords[i]); } for(变量i=0;i

我正在使用传单显示地图并创建多段线。 我想在创建任何新多段线之前删除所有多段线

创建多段线时

我将所有多段线存储在数组-$scope.polycoords=[]

要删除所有多段线,我使用以下代码

for(var i = 0; i< $scope.polycoords.length; i++){
   map.removeLayer($scope.polycoords[i]);
}
for(变量i=0;i<$scope.polycoords.length;i++){
map.removeLayer($scope.polycoords[i]);
}
但它不起作用。 给我这个错误-错误:map.removeLayer不是一个函数
我怎样才能解决这个问题呢?

也许对你来说太晚了,但这对我来说很有效:

使用L.功能组()

var active_polyline = L.featureGroup().addTo(map);
创建第一条多段线时,通过循环将其添加到激活的多段线

polyline = L.polyline(mypolyline).addTo(active_polyline);
在创建新多段线之前清空L.featureGroup(),以删除以前的多段线:

active_polyline.clearLayers();
然后创建一个新的:

polyline = L.polyline(mynewpolyline).addTo(active_polyline);

你们查过答案了吗?是的,我查过了。那对我不起作用。通过这种方式,我在创建多段线之后创建了一个函数,我可以在想要删除所有多段线的地方调用这个函数$scope.removePolyLine=function(){for(var i=0;i<$scope.polycoords.length;i++){var polyline=$scope.polycoords[i];map.removeLayer(polyline);}}}检查以确保映射变量未被重写。如果map是传单地图,则它应该是一个函数