如何从Leaflet地图中删除多个标记?

时间:2016-10-01 08:09:32

标签: leaflet markers removeall

我正在尝试删除地图上的所有标记,但仅删除最后添加的标记下面的代码。

有没有办法获得一个新的地图实例我的意思是点击一个按钮有没有办法重新初始化传单中的地图?

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <link rel="stylesheet" href="https://npmcdn.com/leaflet@1.0.0-rc.3/dist/leaflet.css" />
</head>
<body>
<script src="https://npmcdn.com/leaflet@1.0.0-rc.3/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>

1 个答案:

答案 0 :(得分:3)

不是将标记添加到地图中,而是将标记添加到layerGroup并将layerGroup添加到地图中。 您可以使用clearLayers()方法删除标记。

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