web-dev-qa-db-fra.com

Suppression d'un marqueur dans l'API Google Maps v3

J'essaie de supprimer un marqueur qui a été initialisé comme ceci:

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

Tout fonctionne parfaitement sauf que lorsque je double-clique dessus pour supprimer ce que j'obtiens sur la console d'erreur, c'est ceci:

TypeError: l'objet # n'a pas de méthode 'removeOverlay'

Qu'est-ce que je fais mal?

23
Nathan Campos

Il n'y a pas de fonction removeOverlay sur l'objet map. On dirait que vous n'avez qu'un seul marqueur, pourquoi utiliser un tableau? Changez juste ceci:

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

pour ça:

marker.addListener("dblclick", function() {
    marker.setMap(null);
});
66
duncan