如何使用v3 api清除谷歌地图中的所有标记

时间:2012-08-26 16:59:00

标签: javascript google-maps-api-3 map

我想在点击提交按钮时清除所有标记。如果我有经纬度并且想要清除那个标记,我该怎么做呢。此外,如果我搜索任何路线,我想清除已加载的所有标记。

1 个答案:

答案 0 :(得分:0)

要在插入后从地图中删除标记,您应该使用全局变量跟踪它们:

var markers = [];

然后,每当您向地图添加标记时,也要将标记添加到markers数组中:

markers.push(new google.maps.Marker({
    map: map,
    position: new google.maps.LatLng(20, 20)
});

要清除地图中的所有标记,您可以使用以下内容:

for (var i = 0; i < markers.length; i++)
    markers[i].setMap(null);

如果您想同时清除markers数组,可以使用:

for (var i = markers.length-1; i >= 0; i++) {
    markers[i].setMap(null);
    markers.pop();
}

或者这个:

for (var i = 0; i < markers.length; i++)
    markers[i].setMap(null);
markers = [];

<小时/> 如果您要将基于纬度和经度值的标记移除为LatLng对象,则可以使用以下内容:

for (var i = 0; i < markers.length; i++) {
    if (markers[i].getPosition().equals(latLng)
        markers[i].setMap(null);
}

如果您只是坐标,可以使用以下内容:

for (var i = 0; i < markers.length; i++) {
    var latLng = new google.maps.LatLng(lat, lng);
    if (markers[i].getPosition().equals(latLng)
        markers[i].setMap(null);
}