-4
我想要清除所有標記,當我點擊一個提交按鈕時。如果我有經緯度並且想清除那個標記,我該怎麼做。此外,如果我搜索任何路線,我想清除所有已經加載的標記。如何使用v3 api清除谷歌地圖中的所有標記
我想要清除所有標記,當我點擊一個提交按鈕時。如果我有經緯度並且想清除那個標記,我該怎麼做。此外,如果我搜索任何路線,我想清除所有已經加載的標記。如何使用v3 api清除谷歌地圖中的所有標記
對於在插入後地圖中刪除標記,你應該跟蹤他們的有一個全局變量:
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);
}
對於它的價值,在'同時清除所有標記'選項中,你的意思是'我 - '(謝謝你的提示!)。 –
沒有在你的問題,以幫助足夠的信息。標記是如何添加的?顯示問題的地圖(或jsfiddle)的鏈接將非常有用。通常我會保留對已添加到數組中的地圖的標記的引用。 – geocodezip