2011-11-01 80 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 –