2016-10-01 2 views
0

Я пытаюсь удалить все маркеры на моей карте, но код ниже только добавленного последнего маркера будет удален.Как удалить несколько маркеров с карты листов?

Есть ли способ получить новый экземпляр карты, который я имею в виду при нажатии кнопки, есть ли способ повторно инициализировать карту в листовке?

<!DOCTYPE html> 
<html lang="en"> 
<head> 
    <meta charset="UTF-8"> 
    <title>Title</title> 
    <link rel="stylesheet" href="https://npmcdn.com/[email protected]/dist/leaflet.css" /> 
</head> 
<body> 
<script src="https://npmcdn.com/[email protected]/dist/leaflet.js"></script> 
<script src="../leaflet/lib/AnimatedMarker.js"></script> 

<style> 
    #mapid { height: 500px; } 
</style> 

<div id="mapid"></div> 
<script> 
    var mymap = L.map('mapid').setView([40.68510, -73.94136], 13); 
    L.tileLayer('http://{s}.tile.openstreetmap.fr/osmfr/{z}/{x}/{y}.png', { 
     attribution: '&copy; Openstreetmap France | &copy; <a href="http://www.openstreetmap.org/copyright">OpenStreetMap</a>' 
    }).addTo(mymap); 

    var marker = L.marker([40.68510, -73.94136]).addTo(mymap); 
    var marker = L.marker([40.68576, -73.94149]).addTo(mymap); 
    var marker = L.marker([40.68649, -73.94165]).addTo(mymap); 



    mymap.removeLayer(marker); 
</script> 

</body> 
</html> 
+0

Дайте каждому 'marker' другое имя переменной, например. 'marker1'' marker2' ... вы должны затем удалить каждый из них: 'mymap.removeLayer (marker2)' –

+0

Я отредактировал первый абзац. Во-вторых, я не понимаю, поэтому я оставил его - вы можете уточнить, что это значит? Кажется, это не связано с вашим вопросом? –

+0

Как подсказка, не забудьте загладить свой «я» и т. Д.! –

ответ

2

Вместо добавления маркеров на карте, добавить маркеры в layerGroup и добавить layerGroup к карте. Вы можете удалить маркеры методом clearLayers().

var markers = L.layerGroup([marker1, marker2]).addTo(map); 
markers.clearLayers();