Come attivare l'evento onclick di un marker su un Google Maps V3?


128

Come posso attivare l' evento onclick di un marker su Google Maps dall'esterno della mappa?

Uso la versione 3 dell'API. Ho visto molti tutorial per la versione 2, ma non riesco a trovarlo per la versione 3.

Ho un array globale (denominati marcatori ) contenente tutti i marcatori della mappa (google.maps.Marker). Ora voglio fare qualcosa del tipo:

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

Grazie per il vostro aiuto e se avete bisogno di maggiori informazioni, fatemi sapere!

Risposte:


331

Ho scoperto la soluzione! Grazie 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');

il clic viene attivato, ma nel mio caso le finestre informative non si stanno adattando alla mappa, ma si riducono leggermente.
Saboor Awan,

3
@Saboor Awan Prova a fare una domanda specifica a riguardo poiché i commenti non sono il modo migliore per risolvere questo problema.
AlexV,

Questo è ancora corretto. Ricorda che anche jQuery ha una trigger()funzione. Nel mio caso spuntò l'intellisense che mi fece trasporre gli argomenti.
Pete,

3
Fare questo per la v3 mi dà TypeError: a is undefined in main.js (line 16, col 894)quale sarebbe la ragione?
invoca il

1
@invot Non posso davvero aiutare senza vedere il codice, ma ho trovato qualcuno con lo stesso problema mentre facevo una ricerca veloce ... Prova a impostare la larghezza e l'altezza "popupMapIn" nei CSS usando i pixel (px) e non le percentuali (%) .
AlexV,

9

Per i futuri googler, se viene visualizzato un errore simile di seguito dopo l'attivazione, fare clic per un poligono

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

quindi prova il codice qui sotto

google.maps.event.trigger(polygon, "click", {});
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.