2011-11-01 16 views
23

Estoy tratando de eliminar un marcador de que fue inicializado como esto:Eliminación de un marcador en Google Maps 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); 
}); 

Todo funciona perfectamente, excepto que cuando hago doble clic en él para extraer lo que me pasa en la Consola de error es la siguiente:

TypeError: Object # has no method 'removeOverlay'

¿Qué estoy haciendo mal?

+6

Por lo tanto, "todo" funciona "perfectamente" a excepción de su mecanismo de eliminación _entire_. –

Respuesta

65

No hay función removeOverlay en el objeto map objeto. Parece que tienes solo un marcador, ¿por qué usar una matriz? Sólo cambia esto:

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

a esto:

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

¿Qué sucede si tengo múltiples marcadores y quiero eliminar uno específico? ¿Podría hacer referencia a "marcador [índice]"? –

+1

Sí, tiene una matriz de todos sus marcadores, puede hacer referencia a ellos de esa manera. – duncan

+0

Para cualquiera que lea esta respuesta, puede leer más en este enlace: https://developers.google.com/maps/documentation/javascript/examples/marker-remove –

Cuestiones relacionadas