Как удалять каждую предыдущую метку в leaflet.js , после добавления новой?
Подскажите, как правильно написать код и удалить предыдущие метки в leaflet ?
mymap.on("click", function(e){
let newMarker = new L.Marker([e.latlng.lat, e.latlng.lng]);
newMarker.addTo(mymap);
});
Cейчас происходит постоянное добавление новой, а нужно добавить только одну. Спасибо
Ответы (1 шт):
Автор решения: KirOlga
→ Ссылка
Инициализируем маркер до подписки на событие 'клик'. Затем, если на карте есть слой 'newMarker', мы удаляем его. После этого добавляем новый маркер.
let newMarker;
mymap.on('click', function(e){
if (mymap.hasLayer(newMarker)){
mymap.removeLayer(newMarker);
}
newMarker = new L.Marker([e.latlng.lat, e.latlng.lng]);
newMarker.addTo(mymap);
});
Или можно сделать вот так:
mymap.on('click', function(e){
if (mymap.hasLayer(this.layer)){
mymap.removeLayer(this.layer);
}
this.layer = new L.Marker([e.latlng.lat, e.latlng.lng]);
this.layer.addTo(mymap);
});