Vous cherchez un vélo en libre service? velib.paris.fr vous présente les stations avec la disponibilité des vélos et la disponibilité des emplacement libre pour le retour. C'est une appli JavaScript qui utilise l'Api historique de Google Maps.
On peut faire l'équivalent en Flex en utilisant Google Maps API For Flash.
On peut aussi en faire une version full screen, voir la démo.
Dans ce cas, il faut faire attention aux performances : on n'ap as envie d'avoir d'à-coups quand on déplace la carte. Mais a Paris il y a plus de 1000 stations Velib ; et une grande Google Maps avec 1000 markers c'est saccadé!
Pour ca, la solution est l'utilisation d'un MarkerManager disponible dans une librairie complémentaire à la Google Map API. Il s'agit de la Google Maps Utility Library également disponible en version AS3 : gmaps-utility-library-flash.
Ce gestionnaire accroit fortement les performances, car seuls les markers qui sont dans la viewport sont réellement gérés.
L'utilisation est très facile, on instancie un Manager attaché à la map et ensuite les markers on les ajoute au gestionnaire plutôt que directement à la Google map.
mgr = new MarkerManager(map, null);
Quand on dé-zoom, on a naturellement plus de marker dans la zone visible. Le MarkerManager permet de se protéger de ceci : quand on ajoute un marker à la map, on précise à partir de quel zoom il devient visible.
L'exemple suivant parle de lui-même : pour une carte météo nationale, une seule icone soleil suffit pour une région et c'est seulement quand on zoom dans une région qu'i lest intéressant d'afficher les marqueurs relatifs à une météo plus locale. L'idée d'un nombre constant d'informations quel que soit le niveau de zoom est intéressante.
Justement quand on ajoute un marker, on est amené à préciser l'intervale de zoom pour lequel le marker est visible, parexemple :
mgr.addMarker(marker, 16, 17);
Vois avez sans doute cliqué sur l'un des markers : ca vous affiche la disponibilité de la station. Dans un prochain billet, un focus portera sur l'invocation du service web qui permet d'optenir les infos de disponibilité.
Ouai, mais on voit déja poindre les intérrogations sur comment est alors traité la politique de cross-domain. Vous pouvez déja lancer un sniffer réseau sur la démo ou aussi attendre le prochain billet.


