Google Maps v3 Cambiar el mapa del marcador

Quiero cambiar el mapa de un marcador sobre la marcha. Específicamente, tengo tres colecciones de marcadores diferentes, por lo que los estoy construyendo todos con un mapa indefinido y luego intento establecer su propiedad de mapa cuando cambio entre las colecciones. No está funcionando: los marcadores solo se muestran cuando se pasa un mapa en el constructor.

//Build a new marker with no map
var marker = new google.maps.Marker({
    position: pos,
    title: el.name + " #" + el.location_id,
    map: null
});
markers[el.location_id] = marker;

//Later, when displaying
$.each(markers, function(i, marker){
    marker.map = map;
});
//Marker doesn't show up.

Además, cuando creo un marcador, luego elimino su mapa, todavía muestra:

var marker = new google.maps.Marker({
    position: pos,
    title: el.name + " #" + el.location_id,
    map: map
});
marker.map = null;
//Marker is still on the map...

preguntado el 16 de mayo de 11 a las 18:05

2 Respuestas

Desea utilizar el método de establecimiento de mapas del objeto Marker, es decir:

$.each(markers, function(i, marker){
    marker.setMap(map);
});

Establecer el mapa en nulo debería eliminarlo de cualquier mapa en el que se muestre el objeto Marcador.

Consulta las métodos sección en la documentación v3.

contestado el 16 de mayo de 11 a las 22:05

Debe usar el método setMap () del Marker, por lo que en su caso

marker.setMap(map)

Para eliminar un marcador:

marker.setMap(null)

contestado el 16 de mayo de 11 a las 22:05

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.