¿Cómo activar el evento onclick de un marcador en un Google Maps V3?


128

¿Cómo puedo activar el evento onclick de un marcador en un Google Maps desde fuera del mapa?

Yo uso la versión 3 de la API. He visto muchos tutoriales para la versión 2, pero no puedo encontrar esto para la versión 3.

Tengo una matriz global ( marcadores con nombre ) que contiene todos los marcadores del mapa (google.maps.Marker). Ahora quiero hacer algo como:

markers[i].click(); //I know it's not working, but you get the idea...

//Next line seems to be the way in v2, but what's the equivalent in v3?
GEvent.trigger(markers[i], 'click');

Gracias por su ayuda y si necesita más información, ¡hágamelo saber!

Respuestas:


331

¡He encontrado la solución! Gracias a Firebug;)

//"markers" is an array that I declared which contains all the marker of the map
//"i" is the index of the marker in the array that I want to trigger the OnClick event

//V2 version is:
GEvent.trigger(markers[i], 'click');

//V3 version is:
google.maps.event.trigger(markers[i], 'click');

el clic se dispara, pero en mi caso, la ventana de información no se ajusta al mapa, se reduce ligeramente.
Saboor Awan

3
@Saboor Awan Intenta hacer una pregunta específica sobre esto, ya que los comentarios no son la mejor manera de resolverlo.
AlexV

Esto sigue siendo correcto. Recuerde que jQuery también tiene una trigger()función. En mi caso, apareció Intellisense haciendo que transponga los argumentos.
Pete

3
Hacer esto para v3 me da ¿ TypeError: a is undefined in main.js (line 16, col 894)Cuál sería la razón para eso?
Invot

1
@invot Realmente no puedo ayudar sin ver el código, pero encontré a alguien con el mismo problema mientras hacía una búsqueda rápida ... Intenta establecer el ancho y la altura "popupMapIn" en CSS usando píxeles (px) y no porcentajes (%) .
AlexV

9

Para futuros Googlers, si obtiene un error similar a continuación después de activar, haga clic para obtener un polígono

"Uncaught TypeError: Cannot read property 'vertex' of undefined"

entonces prueba el siguiente código

google.maps.event.trigger(polygon, "click", {});
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.