【问题标题】:Delete all polyline from map before creating new polyline在创建新的折线之前从地图中删除所有折线
【发布时间】:2020-03-28 18:30:25
【问题描述】:

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

当我创建折线时,

我将所有折线存储在 array - $scope.polycoords = [] ;

要删除所有折线,我正在使用此代码。

for(var i = 0; i< $scope.polycoords.length; i++){
   map.removeLayer($scope.polycoords[i]);
}

但它不起作用。 给我这个错误 - 错误:map.removeLayer 不是函数
我该如何解决这个问题?

【问题讨论】:

  • 你检查this的答案了吗?
  • 是的,我查过了。那对我不起作用。我通过这种方式在创建折线之后创建了一个函数,并且可以在要删除所有折线的地方调用此函数。 $scope.removePolyLine = function(){ for(var i = 0; i
  • 检查以确保您的地图变量未被覆盖。如果map是传单地图,removeLayer应该是一个函数

标签: leaflet polyline


【解决方案1】:

可能对你来说为时已晚,但这对我有用:

使用L.featureGroup()

var active_polyline = L.featureGroup().addTo(map);

当您创建第一条折线时,通过循环将它们中的每一条添加到 active_polyline

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

在创建新的折线之前清空 L.featureGroup() 以删除以前的折线:

active_polyline.clearLayers();

然后新建一个:

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

【讨论】:

    猜你喜欢
    • 2013-01-28
    • 1970-01-01
    • 2023-03-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-10-09
    • 1970-01-01
    • 2017-02-06
    相关资源
    最近更新 更多