Api Google Maps Version 2
Info-bulle
LISTE DE LIENS OUVRANT UNE INFO-BULLE SUR LA CARTE
GXmlHttp

Api Google Maps Version 2  flèche Info Bulle  flèche Liste de liens ouvrant une fenêtre sur la carte - GXmlHttp.

LISTE DE LIENS OUVRANT UNE INFO-BULLE SUR LA CARTE
GXmlHttp

Attention :

L'API Google Maps Javascript Version 2 a été officiellement déclarée obsolète le 19 mai 2010 par Google. Elle continuera, cependant, à fonctionner durant encore trois ans, à compter de cette date, conformément à la politique de dépréciation de Google.

TouraineVerte.com ne diffusera plus de d'exemples ni de tutoriels sur cette version de l'API.

L'API Google Maps Javascript Version 3 est désormais la version officielle.

  Article créé le : 03/02/2009
 

Présentation

Dans cet exemple, nous allons créer une liste de sociétés, à partir des données contenues dans un fichier .XML. Tout click sur le lien d'une société, déclenche l'ouverture de son info-bulle. Les marqueurs ne sont pas affichés.

Les données, nécessaires à la construction de la carte, sont extraites du fichier data.xml :

<?xml version="1.0" encoding="UTF-8"?>
<markers>
<marker lat="47.391174" lng="0.722265" type="alpha" nom="Société Zeus" adresse="avenue de le République" codepostal="37700" ville="Saint-Pierre-des-Corps"/>
<marker lat="47.417692" lng="0.691023" type="alpha" nom="Société Gaïa" adresse="avenue Maginot" codepostal="37100" ville="Tours"/>
<marker lat="47.382602" lng="0.726686" type="alpha" nom="Société Éros" adresse="rue Grands Mortiers|ZA Grands Mortiers" codepostal="37700" ville="Saint-Pierre-des-Corps"/>
<marker lat="47.382602" lng="0.726686" type="bravo" nom="Société Héméra" adresse="rue Gustave Eiffel|Z.I. N° 1" codepostal="37300" ville="Joué-les-Tours"/>
<marker lat="47.419094" lng="0.693244" type="alpha" nom="Société Nyx" adresse="avenue Andre Maginot" codepostal="37100" ville="Tours"/>
<marker lat="47.419972" lng="0.662138" type="alpha" nom="Société Érèbe" adresse="boulevard Charles de Gaulle" codepostal="37540" ville="Saint-Cyr-sur-Loire"/>
<marker lat="47.419722" lng="0.661333" type="alpha" nom="Société Thanatos" adresse="rue Pierre de Coubertin" codepostal="37540" ville="Saint-Cyr-sur-Loire"/>
<marker lat="47.419777" lng="0.661055" type="alpha" nom="Société Hypnos" adresse="rue Pierre de Coubertin" codepostal="37540" ville="Saint-Cyr-sur-Loire"/>
<marker lat="47.354685" lng="0.673428" type="alpha" nom="Société Éther" adresse="rue de Chambray" codepostal="37300" ville="Joué-les-Tours"/>
<marker lat="47.395328" lng="0.746727" type="bravo" nom="Société Ouranos" adresse="ld Louche Saint Martin" codepostal="37700" ville="la-Ville-aux-Dames"/>
<marker lat="47.358755" lng="0.734775" type="bravo" nom="Société Ouréa" adresse="rue Camusière" codepostal="37550" ville="Saint-Avertin"/>
<marker lat="47.387418" lng="0.760717" type="bravo" nom="Société Pontos" adresse="rue Louise de la Vallière" codepostal="37700" ville="la-Ville-aux-Dames"/>
<marker lat="47.459477" lng="0.674672" type="charlie" nom="Société Nérée" adresse="Z.I Les Gaudières" codepostal="37390" ville="Mettray"/>
<marker lat="47.338365" lng="0.616983" type="charlie" nom="Société Thaumas" adresse="boulevard Jean Jaurès" codepostal="37510" ville="Ballan-Miré"/> 
<marker lat="47.464388" lng="0.773388" type="delta" nom="Société Phorcys" adresse="La Petite Baltière" codepostal="37210" ville="Rochecorbon"/>
<marker lat="47.345453" lng="0.542879" type="alpha" nom="Société Céto" adresse="boulevard de Chinon" codepostal="37510" ville="Ballan-Miré"/>
<marker lat="47.253136" lng="0.543823" type="charlie" nom="Société Eurybie" adresse="chemin des Aunays" codepostal="37190" ville="Saché"/>
<marker lat="47.323465" lng="0.918732" type="delta" nom="Société Tartare" adresse="Aérodrome de Tours-Sorigny" codepostal="37250" ville="Sorigny"/>
<marker lat="47.352780" lng="0.952377" type="delta" nom="Société Échidna" adresse="Aérodrome d'Amboise Dierre" codepostal="37150" ville="Dierre"/>
<marker lat="47.547799" lng="0.546355" type="charlie" nom="Société Typhon" adresse="Le Moulin de Pérran" codepostal="37360" ville="Neuillé-Pont-Pierre"/>
<marker lat="47.547799" lng="0.546355" type="alpha" nom="Société Coéos" adresse="route de Loches" codepostal="37170" ville="Chambray-lès-Tours"/>
<marker lat="47.201180" lng="0.652281" type="bravo" nom="Société Crios" adresse="La Laurière - D21" codepostal="37260" ville="37260"/>
<marker lat="47.424277" lng="0.982107" type="delta" nom="Société Japet" adresse="rue du Colombier" codepostal="37530" ville="Pocé-sur-Cisse"/>
<marker lat="47.398349" lng="1.005764" type="alpha" nom="Société Hypérion" adresse="Boulevard Saint Denis Hors (D31)" codepostal="37400" ville="Amboise"/>
<marker lat="47.617273" lng="0.595322" type="delta" nom="Société Océan" adresse="Héliport de Belleville" codepostal="37370" ville="Neuvy-le-Roi"/>
<marker lat="47.164742" lng="0.786381" type="delta" nom="Société Cronos" adresse="Le Louroux" codepostal="37240" ville="Le-Louroux"/>
<marker lat="47.451308" lng="0.320320" type="delta" nom="Société Thémis" adresse="Les Champs Marquis" codepostal="37340" ville="Savigné-sur-Lathan"/>
<marker lat="47.254184" lng="0.300922" type="charlie" nom="Société Mnémosyne" adresse="rue Principale" codepostal="37420" ville="Rigny-Ussé"/>
<marker lat="47.154945" lng="1.010517" type="delta" nom="Société Théia" adresse="Les Jolletières" codepostal="37600" ville="Loches"/>
<marker lat="47.285197" lng="1.159358" type="delta" nom="Société Rhéa" adresse="Les Bruyères" codepostal="41400" ville="Saint-Georges-sur-Cher"/>
<marker lat="47.343083" lng="1.185086" type="delta" nom="Société Téthys" adresse="rue Nationale" codepostal="41400" ville="Montrichard"/>
<marker lat="47.063808" lng="0.492325" type="charlie" nom="Société Brontès" adresse="le Village du Bois" codepostal="37220" ville="Rilly-sur-Vienne"/>
<marker lat="47.504830" lng="1.196705" type="delta" nom="Société Stéropès" adresse="route de Chouzy" codepostal="41150" ville="Onzain"/>
<marker lat="47.166573" lng="0.239178" type="alpha" nom="Société Argès" adresse="rue du Commerce" codepostal="37500" ville="Chinon"/>
</markers>

Carte

Code

Code : Avec Google Ajax API Loader

<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xmlns:v="urn:schemas-microsoft-com:vml" xml:lang="fr">
<head>
<meta http-equiv="content-type" content="text/html; charset=utf-8"/>
<title>TouraineVerte ma première carte</title>
<!-- Chargement du script Google AJAX APIs en précisant votre clé -->
<script type="text/javascript" src="http://www.google.com/jsapi?key=Inserez_Votre_Clef_API_Ici"></script>
<script type="text/javascript">
//<![CDATA[
/* Chargement du module "maps" dans sa version "2.x" */
google.load("maps", "2.x",{"other_params":"sensor=false"});
/* Déclaration des variables globales. Les variables déclarées au début du script, avant toute fonction, seront globales. Elles peuvent être utilisées n'importe où dans le script. */
/* Déclaration explicite de la variable "contenuListe" : Elle ne contient aucune donnée */
var contenuListe = "";
/* Déclaration explicite du tableau "tableauTypes" : Il est vide au départ */
var tableauTypes = [];
/* Déclaration explicite du tableau "tableauPoints" : Il est vide au départ */
var tableauPoints = [];
/* Déclaration explicite du tableau "tableauNoms" : Il est vide au départ */
var tableauNoms = [];
/* Déclaration explicite du tableau "tableauAdresses" : Il est vide au départ */
var tableauAdresses = [];
/* Déclaration explicite du tableau "tableauCodePostaux" : Il est vide au départ */
var tableauCodePostaux = [];
/* Déclaration explicite du tableau "tableauVilles" : Il est vide au départ */
var tableauVilles = [];
/* Déclaration explicite du tableau "tableauCoordonnees" : Il est vide au départ */
var tableauCoordonnees = [];
/* Déclaration explicite de la variable "maCarte" */
var maCarte;
/* Déclaration explicite de la variable "i" égale à 0 */
var i = 0;
/* Création d'un variable aléatoire "trompeCacheIE" afin de tromper le cache d'IE et forcer ainsi le chargement du fichier .xml*/
var hasard = new Date();
var trompeCacheIE = hasard.getMilliseconds();
/* Déclaration explicite de la variable "urlXml" : Elle contient le chemin et le nom du fichier XML contenant les données des sociétés, nécessaire à la construction de la carte.   */
/* Il est impératif que le document qui execute ce code soit sur le même serveur que le fichier contenant les données (data.xml). */
/* Veuillez IMPÉRATIVEMENT modifier l'Url ci-dessous afin qu'elle pointe vers votre fichier data.xml */
var urlXml = "http://www.votre-serveur.fr/votre-chemin/votre-fichier-data.xml";
 
/* Fonction initialize() */
function initialize() {
/* Si le navigateur est compatible avec l'API de Google Maps ... */
if (google.maps.BrowserIsCompatible()) {
/* ... Création d'une nouvelle carte nommée "maCarte" qui s'affichera à l'intérieur de la balise <div> ayant pour identifiant id="EmplacementDeMaCarte" ... */
		maCarte = new google.maps.Map2(document.getElementById("EmplacementDeCarteGlobale"));
		maCarte.addControl(new google.maps.SmallMapControl());
		maCarte.addControl(new google.maps.MenuMapTypeControl());
/* ... La carte nommée "maCarte" est centrée sur le point ayant pour Latitude 47.391174 et Longitude 0.722265, avec un niveau de zoom égal à 9. */
		maCarte.setCenter(new google.maps.LatLng(47.391174,0.722265), 9);
/* Création d'une nouvelle instance de l'objet XmlHttpRequest à la sauce Google nommé "requeteHTTP" (en gros on prépare une requète XmlHttpRequest et on l'appelle "requetteHTTP") */
		var requeteHTTP = google.maps.XmlHttp.create();
/* On spécifie pour la requete nommée "requeteHTTP" : */
/* Le type de requête : "GET" */
/* Le chemin/fichier ciblé : urlXml */
/* Le mode de transmission de la requête : true = asynchrone */
		requeteHTTP.open("GET", urlXml + "?" + trompeCacheIE, true);
/* A l'aide de "onreadystatechange" on vérifie le changement d'état de la requête nommée "requeteHTTP" */
		requeteHTTP.onreadystatechange = function() {
/* Si le code d'état passe à 4 qui signifie "prêt" : la requête a été exécutée avec succès et les données correctement transmises */
			if (requeteHTTP.readyState == 4) {
/* "xmlDoc" contient les données, sous la forme d'un fichier  ".xml", chargées depuis la requête nommée "requeteHTTP" */
/* Autrement dit, "xmlDoc" contient les données fournies par http://www.touraineverte.com/Google-Maps/data.xml */
				var xmlDoc = requeteHTTP.responseXML;
/* Déclaration explicite de "marqueurs" qui contient, sous la forme d'un tableau, */
/* les informations, limitées aux seules balises "marker", extraites */
/* de "http://www.touraineverte.com/Google-Maps/data.xml". */
/* La variable "marqueurs" a une portée limitée à cette seule fonction, */
/* c'est-à-dire qu'elle n'est pas nutilisable ailleurs */
				var marqueurs = xmlDoc.documentElement.getElementsByTagName("marker");
/* Ajout à la variable "contenuListe" la balise <ul> */
				contenuListe += '<ul>';
/* On va faire une boucle sur "marqueurs" pour en extraire les différentes données */
/* marqueurs.length permet de connaître le nombre de balises <marker> contenues dans "http://www.touraineverte.com/Google-Maps/data.xml" */
				for (var x = 0; x < marqueurs.length; x++) {
/* Création de la variable "latitude" qui prend la valeur de l'attribut "lat" contenu dans la balise <marker> numéro "x" contenue dans "http://www.touraineverte.com/Google-Maps/data.xml" */
					var latitude = parseFloat(marqueurs[i].getAttribute("lat"));
/* Création de la variable "longitude" qui prend la valeur de l'attribut "lng" contenu dans la balise <marker> numéro "x" contenue dans "http://www.touraineverte.com/Google-Maps/data.xml" */
					var longitude = parseFloat(marqueurs[i].getAttribute("lng"));
/* Création de la variable "point" qui correspond au point ayant pour coodonnées GPS "latitude" et "longitude" */
					var point = new google.maps.LatLng(latitude,longitude);
/* Création de la variable "type" qui prend la valeur de l'attribut "type" contenu dans la balise <marker> numéro "x" contenue dans "http://www.touraineverte.com/Google-Maps/data.xml" */
					var type = marqueurs[i].getAttribute("type");
/* Création de la variable "nom" qui prend la valeur de l'attribut "nom" contenu dans la balise <marker> numéro "x" contenue dans "http://www.touraineverte.com/Google-Maps/data.xml" */
					var nom = marqueurs[i].getAttribute("nom");
					var adresse = marqueurs[i].getAttribute("adresse");
					var codepostal = marqueurs[i].getAttribute("codepostal");
					var ville = marqueurs[i].getAttribute("ville");
/* Création de la variable "marqueur" par appelle de la fonction "CreationInfoBulle" en lui transmettant les variables "point" "nom" et "type" */
					var marqueur = CreationInfoBulle(point,latitude,longitude,nom,adresse,codepostal,ville,type);
				}
/* Ajout à la variable "contenuListe" la balise </ul> */
				contenuListe += '</ul>';
/* Affiche dans la balise ayant pour identifiant id="EmplacementDeLaListe" le code html contenu dans la variable nommée "contenuListe" */
				document.getElementById("EmplacementDeLaListe").innerHTML = contenuListe;
			}
		}
/* Effectue la requête nommée "requeteHTTP" */
		requeteHTTP.send(null);
/* Si le navigateur n'est pas compatible avec l'API de Google Maps ... */
}else{
/* ... affichage du message "Désolé, mais votre navigateur n'est pas compatible avec Google Maps". */
alert('Désolé, mais votre navigateur n\'est pas compatible avec Google Maps');
}
}
 
/* fonction CreationInfoBulle(point,latitude,longitude,nom,adresse,codepostal,ville,type)        */
/* Elle permet l'insertion des différentes informations dans les différents tableaux en          */
/* fonction de l'indice "i", ainsi que la construction de la liste des sociétés = "contenuListe" */
function CreationInfoBulle(point,latitude,longitude,nom,adresse,codepostal,ville,type) {
/* Les "latitude" et "longitude" sont placées dans le tableau nommé "tableauCoordonnees" à l'indice "i" */
	tableauCoordonnees[i] = latitude + ", " + longitude;
/* Les "latitude" et "longitude" sont placées dans le tableau nommé "tableauPoints" à l'indice "i" */
	tableauPoints[i] = point;
/* Le "nom" de la société est placé dans le tableau nommé "tableauNoms" à l'indice "i" */
	tableauNoms[i] = nom;
/* L' "adresse" de la société est placée dans le tableau nommé "tableauAdresses" à l'indice "i" */
	tableauAdresses[i] = adresse;
/* Le "codepostal de la société est placé dans le tableau nommé "tableauCodePostaux" à l'indice "i" */
	tableauCodePostaux[i] = codepostal;
/* La "ville" de la société est placée dans le tableau nommé "tableauVilles" à l'indice "i" */
	tableauVilles[i] = nom;
/* Le "type" de la société est placé dans le tableau nommé "tableauTypes" à l'indice "i" */
	tableauTypes[i] = type;
/* On ajoute le lien javascript vers la société dans "contenuListe" */
	contenuListe += '<li><a href="javascript:actionClickLien(' + i + ')">' + nom + '</a></li>';
/* Incrémente "i" */
	i++;
}
 
/* fonction actionClickLien(i) : Cette fonction permet l'ouverture de l'info-bule, correspondant au lien cliqué contenu dans la liste de droite, grâce à son indice "i" */
function actionClickLien(i) {
/* Création de la variable "contenuInfoBulle" en fonction de l'indice "i" transmis à la fonction "actionClickLien(i)". */
	contenuInfoBulle =   "<b>Catégorie</b> : "+tableauTypes[i]
						+"<br /><b>Société</b> : "+tableauNoms[i]
						+"<br /><b>Adresse</b> : "+tableauAdresses[i]
						+"<br /><b>Code postal</b> : "+tableauCodePostaux[i]
						+"<br /><b>Ville</b> : "+tableauVilles[i]
						+"<br /><b>Société</b> : "+tableauNoms[i]
						+"<br /><b>Coordonnées GPS</b> : "+tableauCoordonnees[i];
/* Ouvre une info-bulle sur la carte nommée "maCarte" dont le contenu, au format HTML, est egal à "contenuInfoBulle" */
/* L'info-bulle sera ancrée sur le point situé à l'indice "i" dans le tableau nommé "tableauPoints" */
	maCarte.openInfoWindowHtml(tableauPoints[i], contenuInfoBulle);
}
 
/* Appelle la fonction "initialize" lorsque la page web sera chargée */
google.setOnLoadCallback(initialize);
//]]>
</script>
<style type="text/css">
<!--
.EncadrementDeMaCarte {
	position:relative;
	background-color:#ccc;
	border:none;
	width:100%px;
	height:400px;
}
#Container {
	position:relative;
	border:none;
	width:100%;
	height:400px;
	z-index:2;
}
#EmplacementDeCarteGlobale {
	float: left;
	width: 60%;
	height: 400px;
	border: none;
}
#EmplacementDeLaListe {
	overflow: auto;
	float: right;
	position: relative;
	width: 40%;
	height: 400px;
	border: none;
	background-color: #fff;
}
#EmplacementDeLaListe a{text-decoration:none;}
-->
</style>
</head>
 
<body>
<div class="EncadrementDeMaCarte">
<!-- la balise <div> ayant pour identifiant id = "container"         -->
<!-- contient la carte et la liste des sociétés placées côte à côte  -->
<div id="container">
<!-- La carte nommée "maCarte", va venir s'afficher à l' intérieur de  -->
<!-- la balise <div> ayant pour identifiant id="EmplacementDeCarteGlobale". -->
<div id="EmplacementDeCarteGlobale"></div>
<!-- La liste des sociétés va venir s'afficher à l' intérieur de        -->
<!-- la balise <div> ayant pour identifiant id="EmplacementDeLaListe". -->
<div id="EmplacementDeLaListe"></div>
</div>
</div>
</body>
</html>

Code : Sans Google Ajax API Loader

<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xmlns:v="urn:schemas-microsoft-com:vml" xml:lang="fr">
<head>
<meta http-equiv="content-type" content="text/html; charset=utf-8"/>
<title>TouraineVerte ma première carte</title>
<!-- Chargement du script Google Maps, version 2.x, en précisant votre clé -->
<script src="http://maps.google.com/maps?file=api&v=2.x&key=Inserez_Votre_Clef_API_Ici&sensor=false"
type="text/javascript"></script>
<script type="text/javascript">
//<![CDATA[
/* Déclaration des variables globales. Les variables déclarées au début du script, avant toute fonction, seront globales. Elles peuvent être utilisées n'importe où dans le script. */
/* Déclaration explicite de la variable "contenuListe" : Elle ne contient aucune donnée */
var contenuListe = "";
/* Déclaration explicite du tableau "tableauTypes" : Il est vide au départ */
var tableauTypes = [];
/* Déclaration explicite du tableau "tableauPoints" : Il est vide au départ */
var tableauPoints = [];
/* Déclaration explicite du tableau "tableauNoms" : Il est vide au départ */
var tableauNoms = [];
/* Déclaration explicite du tableau "tableauAdresses" : Il est vide au départ */
var tableauAdresses = [];
/* Déclaration explicite du tableau "tableauCodePostaux" : Il est vide au départ */
var tableauCodePostaux = [];
/* Déclaration explicite du tableau "tableauVilles" : Il est vide au départ */
var tableauVilles = [];
/* Déclaration explicite du tableau "tableauCoordonnees" : Il est vide au départ */
var tableauCoordonnees = [];
/* Déclaration explicite de la variable "maCarte" */
var maCarte;
/* Déclaration explicite de la variable "i" égale à 0 */
var i = 0;
/* Création d'un variable aléatoire "trompeCacheIE" afin de tromper le cache d'IE et forcer ainsi le chargement du fichier .xml*/
var hasard = new Date();
var trompeCacheIE = hasard.getMilliseconds();
/* Déclaration explicite de la variable "urlXml" : Elle contient le chemin et le nom du fichier XML contenant les données des sociétés, nécessaire à la construction de la carte.   */
/* Il est impératif que le document qui execute ce code soit sur le même serveur que le fichier contenant les données (data.xml). */
/* Veuillez IMPÉRATIVEMENT modifier l'Url ci-dessous afin qu'elle pointe vers votre fichier data.xml */
var urlXml = "http://www.votre-serveur.fr/votre-chemin/votre-fichier-data.xml";
 
/* Fonction initialize() */
function initialize() {
/* Si le navigateur est compatible avec l'API de Google Maps ... */
if (GBrowserIsCompatible()) {
/* ... Création d'une nouvelle carte nommée "maCarte" qui s'affichera à l'intérieur de la balise <div> ayant pour identifiant id="EmplacementDeMaCarte" ... */
		maCarte = new GMap2(document.getElementById("EmplacementDeCarteGlobale"));
		maCarte.addControl(new GSmallMapControl());
		maCarte.addControl(new GMenuMapTypeControl());
/* ... La carte nommée "maCarte" est centrée sur le point ayant pour Latitude 47.391174 et Longitude 0.722265, avec un niveau de zoom égal à 9. */
		maCarte.setCenter(new GLatLng(47.391174,0.722265), 9);
/* Création d'une nouvelle instance de l'objet XmlHttpRequest à la sauce Google nommé "requeteHTTP" (en gros on prépare une requète XmlHttpRequest et on l'appelle "requetteHTTP") */
		var requeteHTTP = GXmlHttp.create();
/* On spécifie pour la requete nommée "requeteHTTP" : */
/* Le type de requête : "GET" */
/* Le chemin/fichier ciblé : urlXml */
/* Le mode de transmission de la requête : true = asynchrone */
		requeteHTTP.open("GET", urlXml + "?" + trompeCacheIE, true);
/* A l'aide de "onreadystatechange" on vérifie le changement d'état de la requête nommée "requeteHTTP" */
		requeteHTTP.onreadystatechange = function() {
/* Si le code d'état passe à 4 qui signifie "prêt" : la requête a été exécutée avec succès et les données correctement transmises */
			if (requeteHTTP.readyState == 4) {
/* "xmlDoc" contient les données, sous la forme d'un fichier  ".xml", chargées depuis la requête nommée "requeteHTTP" */
/* Autrement dit, "xmlDoc" contient les données fournies par http://www.touraineverte.com/Google-Maps/data.xml */
				var xmlDoc = requeteHTTP.responseXML;
/* Déclaration explicite de "marqueurs" qui contient, sous la forme d'un tableau, */
/* les informations, limitées aux seules balises "marker", extraites */
/* de "http://www.touraineverte.com/Google-Maps/data.xml". */
/* La variable "marqueurs" a une portée limitée à cette seule fonction, */
/* c'est-à-dire qu'elle n'est pas nutilisable ailleurs */
				var marqueurs = xmlDoc.documentElement.getElementsByTagName("marker");
/* Ajout à la variable "contenuListe" la balise <ul> */
				contenuListe += '<ul>';
/* On va faire une boucle sur "marqueurs" pour en extraire les différentes données */
/* marqueurs.length permet de connaître le nombre de balises <marker> contenues dans "http://www.touraineverte.com/Google-Maps/data.xml" */
				for (var x = 0; x < marqueurs.length; x++) {
/* Création de la variable "latitude" qui prend la valeur de l'attribut "lat" contenu dans la balise <marker> numéro "x" contenue dans "http://www.touraineverte.com/Google-Maps/data.xml" */
					var latitude = parseFloat(marqueurs[i].getAttribute("lat"));
/* Création de la variable "longitude" qui prend la valeur de l'attribut "lng" contenu dans la balise <marker> numéro "x" contenue dans "http://www.touraineverte.com/Google-Maps/data.xml" */
					var longitude = parseFloat(marqueurs[i].getAttribute("lng"));
/* Création de la variable "point" qui correspond au point ayant pour coodonnées GPS "latitude" et "longitude" */
					var point = new GLatLng(latitude,longitude);
/* Création de la variable "type" qui prend la valeur de l'attribut "type" contenu dans la balise <marker> numéro "x" contenue dans "http://www.touraineverte.com/Google-Maps/data.xml" */
					var type = marqueurs[i].getAttribute("type");
/* Création de la variable "nom" qui prend la valeur de l'attribut "nom" contenu dans la balise <marker> numéro "x" contenue dans "http://www.touraineverte.com/Google-Maps/data.xml" */
					var nom = marqueurs[i].getAttribute("nom");
					var adresse = marqueurs[i].getAttribute("adresse");
					var codepostal = marqueurs[i].getAttribute("codepostal");
					var ville = marqueurs[i].getAttribute("ville");
/* Création de la variable "marqueur" par appelle de la fonction "CreationInfoBulle" en lui transmettant les variables "point" "nom" et "type" */
					var marqueur = CreationInfoBulle(point,latitude,longitude,nom,adresse,codepostal,ville,type);
				}
/* Ajout à la variable "contenuListe" la balise </ul> */
				contenuListe += '</ul>';
/* Affiche dans la balise ayant pour identifiant id="EmplacementDeLaListe" le code html contenu dans la variable nommée "contenuListe" */
				document.getElementById("EmplacementDeLaListe").innerHTML = contenuListe;
			}
		}
/* Effectue la requête nommée "requeteHTTP" */
		requeteHTTP.send(null);
/* Si le navigateur n'est pas compatible avec l'API de Google Maps ... */
}else{
/* ... affichage du message "Désolé, mais votre navigateur n'est pas compatible avec Google Maps". */
alert('Désolé, mais votre navigateur n\'est pas compatible avec Google Maps');
}
}
 
/* fonction CreationInfoBulle(point,latitude,longitude,nom,adresse,codepostal,ville,type)        */
/* Elle permet l'insertion des différentes informations dans les différents tableaux en          */
/* fonction de l'indice "i", ainsi que la construction de la liste des sociétés = "contenuListe" */
function CreationInfoBulle(point,latitude,longitude,nom,adresse,codepostal,ville,type) {
/* Les "latitude" et "longitude" sont placées dans le tableau nommé "tableauCoordonnees" à l'indice "i" */
	tableauCoordonnees[i] = latitude + ", " + longitude;
/* Les "latitude" et "longitude" sont placées dans le tableau nommé "tableauPoints" à l'indice "i" */
	tableauPoints[i] = point;
/* Le "nom" de la société est placé dans le tableau nommé "tableauNoms" à l'indice "i" */
	tableauNoms[i] = nom;
/* L' "adresse" de la société est placée dans le tableau nommé "tableauAdresses" à l'indice "i" */
	tableauAdresses[i] = adresse;
/* Le "codepostal de la société est placé dans le tableau nommé "tableauCodePostaux" à l'indice "i" */
	tableauCodePostaux[i] = codepostal;
/* La "ville" de la société est placée dans le tableau nommé "tableauVilles" à l'indice "i" */
	tableauVilles[i] = nom;
/* Le "type" de la société est placé dans le tableau nommé "tableauTypes" à l'indice "i" */
	tableauTypes[i] = type;
/* On ajoute le lien javascript vers la société dans "contenuListe" */
	contenuListe += '<li><a href="javascript:actionClickLien(' + i + ')">' + nom + '</a></li>';
/* Incrémente "i" */
	i++;
}
 
/* fonction actionClickLien(i) : Cette fonction permet l'ouverture de l'info-bule, correspondant au lien cliqué contenu dans la liste de droite, grâce à son indice "i" */
function actionClickLien(i) {
/* Création de la variable "contenuInfoBulle" en fonction de l'indice "i" transmis à la fonction "actionClickLien(i)". */
	contenuInfoBulle =   "<b>Catégorie</b> : "+tableauTypes[i]
						+"<br /><b>Société</b> : "+tableauNoms[i]
						+"<br /><b>Adresse</b> : "+tableauAdresses[i]
						+"<br /><b>Code postal</b> : "+tableauCodePostaux[i]
						+"<br /><b>Ville</b> : "+tableauVilles[i]
						+"<br /><b>Société</b> : "+tableauNoms[i]
						+"<br /><b>Coordonnées GPS</b> : "+tableauCoordonnees[i];
/* Ouvre une info-bulle sur la carte nommée "maCarte" dont le contenu, au format HTML, est egal à "contenuInfoBulle" */
/* L'info-bulle sera ancrée sur le point situé à l'indice "i" dans le tableau nommé "tableauPoints" */
	maCarte.openInfoWindowHtml(tableauPoints[i], contenuInfoBulle);
}
//]]>
</script>
<style type="text/css">
<!--
.EncadrementDeMaCarte {
	position:relative;
	background-color:#ccc;
	border:none;
	width:100%px;
	height:400px;
}
#Container {
	position:relative;
	border:none;
	width:100%;
	height:400px;
	z-index:2;
}
#EmplacementDeCarteGlobale {
	float: left;
	width: 60%;
	height: 400px;
	border: none;
}
#EmplacementDeLaListe {
	overflow: auto;
	float: right;
	position: relative;
	width: 40%;
	height: 400px;
	border: none;
	background-color: #fff;
}
#EmplacementDeLaListe a{text-decoration:none;}
-->
</style>
</head>
 
<!-- Une fois la page chargée la fonction initialize() est exécutée. -->
<!-- A la fermeture de la page , la fonction GUnload() est exécutée. -->
<body onload="initialize()" onunload="GUnload()">
<div class="EncadrementDeMaCarte">
<!-- la balise <div> ayant pour identifiant id = "container"         -->
<!-- contient la carte et la liste des sociétés placées côte à côte  -->
<div id="container">
<!-- La carte nommée "maCarte", va venir s'afficher à l' intérieur de  -->
<!-- la balise <div> ayant pour identifiant id="EmplacementDeCarteGlobale". -->
<div id="EmplacementDeCarteGlobale"></div>
<!-- La liste des sociétés va venir s'afficher à l' intérieur de        -->
<!-- la balise <div> ayant pour identifiant id="EmplacementDeLaListe". -->
<div id="EmplacementDeLaListe"></div>
</div>
</div>
</body>
</html>

Remarque(s)

Attention :

Si vous recopiez ces exemples, assurez-vous que votre fichier principal et le fichier data.xml sont sur le même serveur. Dans le cas contraire, cela ne fonctionnera pas, et votre liste restera désespérément vierge.

 

API Google Maps - API Google Earth - Fichiers KML KMZ - Aide Didacticiel Documentation Exemple Tutoriels Trucs et Astuces en Français sur TouraineVerte.com
Formation et tutoriels sur les cartes API Google Maps | Formation et tutoriels sur les cartes API Google Earth | Formation et tutoriels sur les Fichiers KML KMZ
Développeur freelance auto-entrepreneur carte Google Maps Earth API | http://www.TouraineVerte.com | © 2010 - Plan du site | fadamaps37@touraineverte.com