2009-06-09 14 views
0

J'ai une application Web qui doit afficher 30 000 marqueurs sur une carte en même temps. Je ne veux utiliser aucun type de clustering. J'ai besoin qu'ils soient tous affichés.Marqueurs cliquables sur GTileLayerOverlay

J'ai aussi besoin qu'ils soient cliquables. L'utilisateur peut cliquer sur chaque point et une fenêtre contextuelle contiendra des informations sur ce point. Même à un faible niveau de zoom quand il y a des milliers de marqueurs dans un seul carré de 256x256, l'utilisateur doit pouvoir cliquer dessus. Il peut être fastidieux pour l'utilisateur de cliquer sur un point groupé avec des centaines d'autres points, mais s'il y a un marqueur au milieu de nulle part, je veux que l'utilisateur puisse cliquer dessus juste au lieu de avoir à zoomer.

Comment procéder? Je sais que c'est possible parce que j'ai regardé une vidéo sur Google Video où ce type crée une application GTileLayerOverlay qui avait des marqueurs cliquables. Il n'a pas expliqué comment cela avait été fait.

Est-ce que ma seule option est de supprimer simplement le GTileLayerOverlay à des niveaux de zoom élevés et de le remplacer par un vrai calque GMarker? Je ne veux vraiment pas faire ça. Cela me semble sur l'ingénierie.

Si vous étiez moi, comment vous y prendrez-vous?

Répondre

1

Je trouve cet exemple est dans le Google Maps API Demo Gallery:

Clickable Tile Layer Cet exemple crée un type de carte personnalisée (GMapType) qui montre les frontières régionales et les places pour les centres de comté. Lorsque les cases sont cliquées, une fenêtre d'informations s'ouvre avec des informations sur ce comté. La cliquabilité est accomplie en transmettant des informations sur les limites de pixels cliquables dans les cookies attachés aux tuiles, et en effectuant une vérification côté client au passage de la souris pour savoir si la position de la souris était dans les limites des pixels.

Here's some commentary sur sa méthode.

Je n'ai aucune expérience avec GTileLayOverlays, mais je crois qu'il est possible d'accomplir ce que vous essayez de faire sans utiliser GMarkers.

Serait-il possible d'utiliser le clustering si chaque cluster pouvait afficher une liste des marqueurs qu'il représente? Il semble que 30 000 marqueurs visibles en même temps seraient visuellement confus et difficiles à naviguer.