2012-08-26 43 views
-4

我想要清除所有標記,當我點擊一個提交按鈕時。如果我有經緯度並且想清除那個標記,我該怎麼做。此外,如果我搜索任何路線,我想清除所有已經加載的標記。如何使用v3 api清除谷歌地圖中的所有標記

+0

沒有在你的問題,以幫助足夠的信息。標記是如何添加的?顯示問題的地圖(或jsfiddle)的鏈接將非常有用。通常我會保留對已添加到數組中的地圖的標記的引用。 – geocodezip

回答

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); 
} 
+0

對於它的價值,在'同時清除所有標記'選項中,你的意思是'我 - '(謝謝你的提示!)。 –