我有Leaflet
OpenStreetMap
地图,我在其中设置了新标记。我希望标记移动,这意味着清除所有先前的标记,并添加一个新标记。目前,新点击只会产生新的标记,并且不止一个会留在地图上。
如何在再次点击时清除所有标记?
initmap();
var home = new L.LayerGroup();
map.on('click', function(e) {
// clear all markers here somehow
document.getElementById("latFld").value = e.latlng.lat;
document.getElementById("lngFld").value = e.latlng.lng;
L.marker([e.latlng.lat,e.latlng.lng]).addTo(map);
});
编辑:
我的原始标记不属于某个组。
L.marker([43.653409, -79.384112]).bindPopup('Original Home').addTo(map);
无论变量LayerGroup
如何,我都在询问是否有办法清除所有标记,无论如何。它不是重复的。
答案 0 :(得分:1)
将我的标记推入layerGroup
,以便我可以将其用于清算:
var mymarkers = L.layerGroup([
L.marker([43.677681,-79.389943]).bindPopup('Some place'),
L.marker([<%= @mylat %>,<%= @mylon %>]).bindPopup('Original Home')
]);
L.control.layers(mymarkers).addTo(mymap);
mymap.on('click', function(e) {
mymarkers.clearLayers();
document.getElementById("latFld").value = e.latlng.lat;
document.getElementById("lngFld").value = e.latlng.lng;
L.marker([e.latlng.lat,e.latlng.lng]).bindPopup('New ome').addTo(mymarkers);
$('#update').html("Values updated");
});
我期待一个自动保持所有标记的对象,但它并不存在。所以我不得不分配一个。