如何从传单地图中删除标记

How to remove a marker from leaflet map

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

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);
                   }
              });

如果标记已经存在,我想将其删除,并添加一个新的 one.For,我添加了类似

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

但是我无法删除旧的 marker.How 来解决这个问题

尝试:

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

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

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

var oldmarker;

marker = <your code here>
oldmarker = marker;

然后

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