leaflet点击只添加一个标记

下面这个代码每次点击都会添加一个标记。我只要点击一次添加一个,点第二次时第一个消失。怎么做呢?我的代码:

var icon = L.icon({
iconUrl: "QQ.png",
iconSize: [60, 60],
iconAnchor: [30, 30]
});
map.on('click',addPoint);
function addPoint(e) {
var marker = L.marker(e.latlng, {
draggable:false,
riseOnHover: true,
icon
})
.addTo(map)
.bindPopup(e.latlng.toString2()).openPopup();
}
阅读 3.1k
1 个回答

1、删除上一个点,每次点击的时候新增点

var icon = L.icon({
    iconUrl: "QQ.png",
    iconSize: [60, 60],
    iconAnchor: [30, 30]
}), marker;

map.on('click',addPoint);

function addPoint(e) {
    if(marker)map.removeLayer(marker);
    marker = L.marker(e.latlng, {
        draggable:false,
        riseOnHover: true,
        icon
    })
    .addTo(map)
    .bindPopup(e.latlng.toString2()).openPopup();
}

2、就一个点,每次点击的时候,修改点的位置

var icon = L.icon({
    iconUrl: "QQ.png",
    iconSize: [60, 60],
    iconAnchor: [30, 30]
})
var marker = L.marker(e.latlng, {
    draggable:false,
    riseOnHover: true,
    icon
}).addTo(map)

map.on('click',movePoint);

function movePoint(e) {
    marker.setLatLng(e.latlng).bindPopup(e.latlng.toString2()).openPopup()
}
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进