L'API Google Maps V3 - ajouter un écouteur d'événement pour tous les marqueurs?
Il doit y avoir un moyen d'ajouter un écouteur pour TOUS les MARQUEURS, actuellement, je suis en ajoutant un port d'écoute de chacun à l'aide d'une boucle qui se sent vraiment mal...
Cela se sent mal:
google.maps.event.addListener(unique_marker_id, 'click', function(){
//do something with this marker...
});
Vous devez vous connecter pour publier un commentaire.
Dans les deux
Marker
etMarkerWithLabel
cas, vous pourriez tout aussi bien utiliser le ce mot clé de renvoyer l'objet à laquelle le gestionnaire d'événements est joint:ce ici se réfère précisément à l'objet de marqueur.
Vous devez ajouter l'écouteur à chaque marqueur, mais vous pouvez le faire facilement, par exemple par la définition d'une fonction comme
et de l'appeler de façon appropriée:
ou dans une boucle, etc.
J'ai réussi à le faire à l'aide de FusionTablesLayer. C'est un peu de travail à la mise en place correctement, mais une fois que vous avez terminé, il est ultra-rapide, même avec des milliers de marqueurs.
En gros, vous avez créer une table dans Google Docs et les interroger à partir de votre page web. La carte est pré-générés sur Googles les serveurs, c'est pourquoi il effectue si bien.
Une démo complète de la page:
Consultez cet article pour plus d'info, "Trop De Marqueurs!" par Luc Mahé et Chris Broadfoot de l'Api Google Geo Équipe.
Si vous êtes à l'aide de GoogleMaps v3.16 ou plus tard, vous pouvez ajouter le gestionnaire d'événements pour l'ensemble de la
map.data
couche.voir: https://developers.google.com/maps/documentation/javascript/examples/layer-data-event
J'ai réussi à obtenir une réponse ici:
Google Maps et Leurs Marqueurs
et une démo ici:
http://jsfiddle.net/salman/bhSmf/
Cette façon la plus simple est: est-ce
Étendre sur Jiri répondre à purley pour ceux à la recherche de qui souhaite également ajouter une étiquette personnalisée etc. Dans l'esprit de Jiri post, en version courte:
Supprimer l'alerte, juste là pour montrer l'action etc. comme avec Jiri info, vous pouvez ajouter m2, m3 etc. Je pensais que cela finit simplement les choses.
Ce que j'ai Fait est, lors de l'ajout de nouvelles
marker
sur la carte et avant de le pousser dansmarkers = []
tableau, je viens d'ajouter un écouteur àmarker.addListener('click', () => { //Do Something here});
Code Complet:
LIEN j'ai suivi!
C'était vraiment dur pour moi de trouver une réponse à mon besoin. Mais celui-ci est présent partout et pour moi!
Ce qui concerne les! 🙂
Vous pouvez faire quelque chose comme ceci: