我希望在制作新的circleMarker时删除最后一个circleMarker,这会在用户点击时发生。
app.initialize();
var count = 0;
var location;
map.on('click', function(e){
if (count == 1){
map.removeLayer(location);
}else{
count = 1;
}
var cords = String(e.latlng);
cords = cords.match(/\(([^)]+)\)/)[1];
lat = cords.substring(0, cords.search(","));
lng = cords.substring(cords.search(",")+1);
location = new L.circleMarker([lat, lng], {radius:100,});
map.addLayer(location);
});
这是我到目前为止的代码,但每当我点击时我都会得到ERR_FILE_NOT_FOUND。
提前致谢,Ed。
答案 0 :(得分:2)
如果我很清楚你想做什么,我想你可能会使代码过于复杂。编写以下代码就足够了:
var location = new L.circleMarker();
map.on('click', function(e) {
map.removeLayer(location);
location = new L.circleMarker(e.latlng, {radius:10,});
map.addLayer(location);
});
请查看小提琴,看看这是否是您想要的:https://jsfiddle.net/vaillant/ch4qb28x/
答案 1 :(得分:1)
我得到了它的工作,所以这是我做的,如果其他人有这个问题:
app.initialize();
var mark = L.layerGroup();
map.on('click', function(e){
if (map.hasLayer(mark)){
map.removeLayer(mark);
mark.clearLayers();
}
addMarker(e);
});
function addMarker(e){
var cords = String(e.latlng);
cords = cords.match(/\(([^)]+)\)/)[1];
lat = cords.substring(0, cords.search(","));
lng = cords.substring(cords.search(",")+1);
mark.addLayer(new L.circleMarker([lat, lng], {radius:100,}));
map.addLayer(mark);
}
答案 2 :(得分:0)
这对我来说非常有效(使用jquery):
var myFeatureGroup = L.featureGroup().addTo(map);//creating a circlemarkers group
$('.addcircle').click(function (oEvt) {
oEvt.preventDefault();
myFeatureGroup.clearLayers();//deleting the previous circle marker
var LatLng = $(this).data('coords');
var circlemark = L.circleMarker(LatLng, {radius: 50,color:"#ff0000"}).addTo(myFeatureGroup);
});