2011-11-01 12 views
23

: Ben ne olsun kaldırmak için çift tıkladığınızdaGoogle Maps API v3 bir Marker Çıkarma Böyle başlatılmış olan bir <em>işaretleyici</em> kaldırmak çalışıyorum

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

Her şey olması dışında mükemmel çalışıyor yanlış

TypeError: Object # has no method 'removeOverlay'

yapıyorum: Hata Konsolu böyle?

+6

Yani, "her şeyi" senin _entire_ kaldırma mekanizması dışında "mükemmel" çalışır. –

cevap

65

haritası nesne üzerinde hiçbir removeOverlay işlevi yoktur. Sadece bir işaretçiniz var gibi görünüyor, neden bir dizi kullanıyorsunuz? Sadece bu değiştirin: Buna

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

:

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

Birden çok işaretleyicim varsa ve belirli birini kaldırmak istiyorsam ne olur? "İşaretçi [dizin]" referansını kullanabilir miyim? –

+1

Evet, tüm işaretleyicilerinizden oluşan bir diziniz var, daha sonra bunlara referans gösterebilirsiniz. – duncan

+0

Bu cevabı okuyan herkes için şu bağlantıdan daha fazlasını okuyabilirsiniz: https://developers.google.com/maps/documentation/javascript/examples/marker-remove –