制作新标记时删除圆圈标记

时间:2016-10-01 09:47:45

标签: javascript html leaflet

我希望在制作新的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。

3 个答案:

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