【发布时间】: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 时,当您点击它时,该标记将被移除。所以它与
updateAnchor或refreshMarkers或其他代码有关。您是否覆盖了标记变量? -
@FalkeDesign 是的,我正在覆盖同一个变量。这有什么问题吗??