Como acionar o evento onclick de um marcador em um Google Maps V3?


128

Como aciono o evento onclick de um marcador no Google Maps de fora do mapa?

Eu uso a versão 3 da API. Eu já vi muitos tutoriais para a versão 2, mas não consigo encontrar isso para a versão 3.

Eu tenho uma matriz global ( marcadores nomeados ) contendo todo o marcador do mapa (google.maps.Marker). Agora eu quero fazer 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');

Agradecemos sua ajuda e, se precisar de mais informações, entre em contato!

Respostas:


331

Eu descobri a solução! Graças ao 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');

o clique está disparando, mas, no meu caso, as janelas de informações não estão se ajustando ao mapa, mas diminuem um pouco.
Saboor Awan

3
@ Saboor Awan Tente fazer uma pergunta específica sobre isso, pois os comentários não são a melhor maneira de resolver isso.
precisa saber é o seguinte

Isso ainda está correto. Lembre-se de que o jQuery também tem uma trigger()função. No meu caso, o intellisense estava surgindo, fazendo-me transpor os argumentos.
Pete

3
Fazer isso na v3 me dá TypeError: a is undefined in main.js (line 16, col 894)Qual seria o motivo disso?
invoque 25/07

1
@invot Não posso ajudar sem ver o código, mas encontrei alguém com o mesmo problema ao fazer uma pesquisa rápida ... Tente definir a largura e a altura "popupMapIn" em CSS usando pixels (px) e não porcentagens (%) .
AlexV #

9

Para futuros Googlers, se você receber um erro semelhante abaixo após acionar, clique em um polígono

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

tente o código abaixo

google.maps.event.trigger(polygon, "click", {});
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.