2011-11-01 75 views
23

我試圖刪除標記這是這樣的初始化:刪除在谷歌地圖API V3的標誌

marker = new google.maps.Marker({ 
    position: latLng, 
    map: map, 
    draggable: true, 
    animation: google.maps.Animation.DROP, 
    title: 'Marker 1', 
    icon: redPin 
}); 

google.maps.event.addListener(marker, "click", function() { 
    showMarkerDialog(marker.position, "marker"); 
}); 

google.maps.event.addListener(marker, "dblclick", function() { 
    // Add a alert: Are you sure you want to remove this marker? 

    map.removeOverlay(marker); 
}); 

一切完美,只是當我雙擊它來除去我得到錯誤控制檯是這樣的:

TypeError: Object # has no method 'removeOverlay'

我在做什麼錯?

+6

所以, 「一切」 的作品 「完美」 除了你_entire_去除機理。 –

回答

65

有沒有removeOverlay功能地圖對象。聽起來你只有一個標記,爲什麼要使用數組?只要改變這一點:

google.maps.event.addListener(marker, "dblclick", function() { 
    map.removeOverlay(marker); 
}); 

這樣:

marker.addListener("dblclick", function() { 
    marker.setMap(null); 
}); 
+0

如果我有多個標記並想刪除特定標記,該怎麼辦?我可以參考「marker [index]」嗎? –

+1

是的,擁有所有標記的數組,然後可以像那樣引用它們。 – duncan

+0

對於閱讀此答案的任何人,您可以閱讀以下鏈接: https://developers.google.com/maps/documentation/javascript/examples/marker-remove –