JDN Développeurs > Client Web > Utiliser l'API Google Maps

Utiliser l'API Google Maps > Utiliser XML

Précédente Les codes sources des exemples de cette page... 

L'API Google Maps ne permet pas d'obtenir d'itinéraire d'un point à l'autre - cela reste l'exclusivité du site Google Maps. Il est cependant possible d'afficher plus d'une coordonnée, à l'aide de plusieurs marqueurs, sur une même carte. Si l'on ne dispose pas du tracé de la route, cela permet néanmoins de donner un aperçu des points de passage, et commentaire dans les infobulles de chaque marqueur.

Reste à indiquer ces différents points à l'API. Il est bien entendu possible de les placer un à un, chacun avec son code JavaScript, mais à partir d'un certain nombre, cela devient laborieux, surtout s'il s'agit ensuite d'en modifier ou enlever un. Pour traiter plusieurs points, il est donc possible et préférable de passer par un fichier XML - fichier qui peut parfaitement être généré à partir de données XML, ce que nous ne verrons pas ici.

Notre objectif : afficher plusieurs points sur une même carte,
chacun disposant d'informations personnalisées

Le fichier XML contient donc des marqueurs, chacun étant indiqué par sa latitude et sa longitude. Ils peuvent également être accompagnés d'un descriptif HTML, qui apparaîtra dans l'infobulle, ainsi que d'une étiquette pour ce marqueur. Le fichier XML peut être de n'importe quelle forme, mais la norme veut qu'il contienne une balise conteneur markers, avec une série de balises marker, chacune ayant les attributs lat, lng, auxquelles on peut ajouter d'autres attributs pour les contenus HTML des onglets (info, details, label, html...).

Pour exploiter les fichiers XML, l'API Google Maps dispose, entre autres, de la classe GXml() pour parcourir le contenu du fichier, et GDownloadUrl() pour charger le fichier. Cette dernière fournit le mécanisme de chargement asynchrone cher à Ajax : XMLHttpRequest(). De fait, l'URL du fichier de données pointe sur le même serveur que celui du fichier XHTML de la carte.

Une fois le fichier chargé, GDownloadUrl() déclenche une fonction anonyme personnalisée, permettant de traiter les données. C'est ici que la classe GXml() intervient : en l'instanciant, on obtient un objet disposant des méthodes DOM pour parcourir l'arbre XML, comme getElementsByTagName(). C'est grâce à cela que le fichier XML peut suivre une norme interne.

Le DOM nous permet en effet de récupérer à notre manière les données du fichier XML, pour les passer aux méthodes JavaScript de l'API. Ainsi, nous pouvons récupérer les attributs lat et lng de notre marker et les passer à GLatLng() pour obtenir un point sur la carte, tout comme nous pouvons exploiter nos attributs label et html pour renseigner les deux onglets de l'infobulle d'un point. En définitive, il est possible de donner beaucoup plus d'information qu'une simple indication géographique : prix, horaires, code d'entrée, photo de facade...

Notez cependant que le code HTML doit respecter les limites d'XML : tous les caractères spéciaux doivent être transformés en entités HTML. Donc, pour réaliser notre exemple d'introduction, avec image et retours à la ligne, il faudra du code expressément valide.

Précédente Retour au sommaire Page suivante 
Introduction | Pré-requis | Premières cartes | Utiliser XML | Aller plus loin...
 
|
Haut de page
Nos autres sites Société | Mentions légales | Contacts | Publicité | PA Emploi | Presse | Recrutement | Tous nos sites | Données personnelles
© Benchmark Group, 69/71 avenue Pierre Grenier. 92517 Boulogne Billancourt Cedex