【问题标题】:How to remove a marker from leaflet map如何从传单地图中删除标记
【发布时间】:2020-04-14 10:36:21
【问题描述】:

我的传单地图中有一个标记,例如

marker = new L.Marker([lat,lon],{icon:flagIcon,title: "Drage me to change your location"}).addTo(map);
              marker.dragging.enable();
              marker.on('dragend', function(e){
                  var coords = e.target.getLatLng();
                  var lat = coords.lat;
                  var lon = coords.lng;
                  console.log("Lat : "+lat+"  Lng: "+lon);
                  document.getElementById("lat").value=lat;
                  document.getElementById("long").value=lon;
                  document.getElementById("placeName").value="location on map";
                  updateAnchor();
                  map.panTo({lon:lon,lat:lat})
                  if(flag!=0){
                      map.removeLayer(cir);
                      cir = L.circle([lat,lon],circleOptions).addTo(map);
                      refreshMarkers(flag);
                   }
              });

如果标记已经存在,我想删除它并创建一个新标记。为此,我添加了类似的代码

if (marker) {
    map.removeLayer(marker); // remove
}

但我无法删除旧标记。如何解决此问题

【问题讨论】:

  • 请分享updateAnchor()refreshMarkers(flag)的代码。您也可以直接添加坐标map.panTo(coords); L.circle(coords, ...
  • @FalkeDesign 这不是问题。因为我只是在拖动结束方法上评论了那些标记。但仍然有同样的问题。所以问题是标记没有删除
  • 当您查看jsfiddle.net/falkedesign/v2dn3xLt 时,当您点击它时,该标记将被移除。所以它与updateAnchorrefreshMarkers 或其他代码有关。您是否覆盖了标记变量?
  • @FalkeDesign 是的,我正在覆盖同一个变量。这有什么问题吗??

标签: leaflet marker


【解决方案1】:

您添加的 marker 与地图上已经存在的 marker 不是同一个对象。如果您希望以后能够引用(例如删除)标记,请将标记对象的副本保存在全局中。

var oldmarker;

marker = <your code here>
oldmarker = marker;

然后

if (map.hasLayer(oldmarker)) {
    map.removeLayer(oldmarker);
}

【讨论】:

    【解决方案2】:

    试试:

    if (map.hasLayer(marker)) {
        map.removeLayer(marker); // remove
    }
    

    如果这没有帮助,请在您的问题中添加更多代码,您想何时删除标记以及如何添加新标记

    【讨论】:

    • 我试过这样。但仍然没有删除旧的。旧的和新的都可以
    • 我刚刚在那个 if 语句中做了一个控制台打印。if 语句正在执行。但是删除过程不起作用
    猜你喜欢
    • 2015-03-24
    • 1970-01-01
    • 2015-04-17
    • 2013-12-04
    • 2019-07-01
    • 2021-01-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多