Api Google Maps Version 2
Carte
DECLENCHER UN ZOOM SUR UNE CARTE APRES AVOIR CLIQUE SUR LE MARQUEUR D'UNE AUTRE

Api Google Maps Version 2  flèche Carte  flèche Deux cartes liées - marqueurs et zoom liés.

DECLENCHER UN ZOOM SUR UNE CARTE APRES AVOIR CLIQUE SUR LE MARQUEUR D'UNE AUTRE

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 : 12/02/2009
 

Présentation

Dans cet exemple, nous allons créer deux cartes :

La première carte :

  • de type "Plan",
  • est fixe,
  • se nomme "maCarte",
  • et s'affiche dans une balise div nommée "EmplacementDeMaCarte".

Dessus s'affichent tous les marqueurs pointant des lieux caractéristiques.

En survolant les marqueurs avec la souris, un commentaire apparaît.

Un "click" sur l'un des marqueurs n'affiche aucune info-bulle, mais va interagir sur la seconde carte.

La seconde carte :

  • de type "Satellite",
  • est déplaçable,
  • se nomme "CarteZoom",
  • et s'affiche dans une balise div nommée "EmplacementDeCarteZoom".

Dès qu'un "click" est détecté sur la première carte, la seconde carte :

  • va se centrer sur les coordonnées du point cliqué,
  • adopter un niveau de zoom pré-défini,
  • afficher un marqueur sur ce point,
  • ouvrir l'info-bulle liée au marqueur.

Carte

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.com : Exemples et tutoriels sur l'API Google Maps</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">
/* Chargement du module "maps" dans sa version "2.x" */
google.load("maps", "2.x",{"other_params":"sensor=false"});
/* Déclaration des variables globales */
var maCarte;
var CarteZoom;
/* 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 <div> ayant pour identifiant id="EmplacementDeMaCarte" */
		maCarte = new google.maps.Map2(document.getElementById('EmplacementDeMaCarte'));
		/*  La carte nommée "maCarte" est centrée sur la Latitude 47.168076, la Longitude 0.235895, avec un niveau de zoom égal à 9 */
		maCarte.setCenter(new google.maps.LatLng(47.168076,0.235895), 9);
		/*  La carte nommée "maCarte" est fixe (on désactive la possibilité de la faire glisser) */
		maCarte.disableDragging();
		/*  Création d'une nouvelle carte nommée "CarteZoom" qui s'affichera à l'intérieur de la <div> ayant pour identifiant id="EmplacementDeCarteZoom" */
		CarteZoom = new google.maps.Map2(document.getElementById('EmplacementDeCarteZoom'), {mapTypes:[G_SATELLITE_MAP]});
		/*  La carte nommée "CarteZoom" est centrée sur la Latitude 47.168076, la Longitude 0.235895, avec un niveau de zoom égal à 9 */
		CarteZoom.setCenter(new google.maps.LatLng(47.168076,0.235895), 9);
		/*  Création d'un nouveau point nommé "point" à la Latitude : 47.168076 et à la Longitude : 0.235895 */
		var point = new google.maps.LatLng(47.168076,0.235895);
		/*  Création d'un nouveau marqueur nommé "marqueur" en appelant la fonction createMarker() */
		/*  Les paramètres suivants sont fournis à la fonction createMarker() : */
		/* point : point créé ci-dessus */
		/* 'Point caractéristique N° 1<br />Niveau de Zoom : 17' : Texte s'affichant dans l'info-bulle liée au marqueur */
		/* 'Marqueur 1' : Titre apparaissant sous le marqueur lorsque celui-ci est survolé par la souris */
		/* 17 : Niveau de zoom */
		var marqueur = createMarker(point,'Point caractéristique N° 1<br />Niveau de Zoom : 17','Marqueur 1',17)
		/* Ajoute sur la carte nommée "maCarte" le marqueur nommé "marqueur" */
		maCarte.addOverlay(marqueur);
		/*  Création d'un nouveau point nommé "point" à la Latitude : 47.268076 et à la Longitude : 0.235895 */
		var point = new google.maps.LatLng(47.268076,0.235895);
		/*  Création d'un nouveau marqueur nommé "marqueur" en appelant la fonction createMarker() */
		/*  Les paramètres suivants sont fournis à la fonction createMarker() : */
		/* point : point créé ci-dessus */
		/* 'Point caractéristique N° 2<br />Niveau de Zoom : 8' : Texte s'affichant dans l'info-bulle liée au marqueur */
		/* 'Marqueur 2' : Titre apparaissant sous le marqueur lorsque celui-ci est survolé par la souris */
		/* 8 : Niveau de zoom */
		var marqueur = createMarker(point,'Point caractéristique N° 2<br />Niveau de Zoom : 8','Marqueur 2',8)
		/* Ajoute sur la carte nommée "maCarte" le marqueur nommé "marqueur" */
		maCarte.addOverlay(marqueur);
		/*  Création d'un nouveau point nommé "point" à la Latitude : 47.168076 et à la Longitude : 0.335895 */
		var point = new google.maps.LatLng(47.168076,0.335895);
		/*  Création d'un nouveau marqueur nommé "marqueur" en appelant la fonction createMarker() */
		/*  Les paramètres suivants sont fournis à la fonction createMarker() : */
		/* point : point créé ci-dessus */
		/* 'Point caractéristique N° 3<br />Niveau de Zoom : 12' : Texte s'affichant dans l'info-bulle liée au marqueur */
		/* 'Marqueur 3' : Titre apparaissant sous le marqueur lorsque celui-ci est survolé par la souris */
		/* 12 : Niveau de zoom */
		var marqueur = createMarker(point,'Point caractéristique N° 3<br />Niveau de Zoom : 12','Marqueur 3',12)
		/* Ajoute sur la carte nommée "maCarte" le marqueur nommé "marqueur" */
		maCarte.addOverlay(marqueur);
	}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 createMarker() */
/* Les paramètres suivants sont fournis à la fonction createMarker() : */
/* point : point sur lequel sera ancré le marqueur */
/* TexteAuFormatHTML : Texte au format HTML s'affichant dans l'info-bulle liée au marqueur */
/* Titre : Titre apparaissant sous le marqueur lorsque celui-ci est survolé par la souris */
/* ValeurDuZoom : Niveau de zoom */
function createMarker(point,TexteAuFormatHTML,Titre,ValeurDuZoom) {
	/* Création d'un nouveau marqueur nommé "marqueur" ancré sur le point nommé "point" */
	/* L'option "title:" permet d'afficher le contenu de "Titre" sous le marqueur lorsque celui-ci est survolé par la souris */
	var marqueur = new google.maps.Marker(point,{title:Titre});
	/* Création d'un nouveau marqueur nommé "marqueurzoom" ancré sur le point nommé "point" */
	var marqueurzoom = new google.maps.Marker(point);
	/* ValZoom = ValeurDuZoom */
	var ValZoom = ValeurDuZoom;
	/* Ajout d'un observateur d'événement au marqueur nommé "marqueur" */
	/* L'événement observé est "click". */
	/* Lorsqu'un clic sera détecté sur le marqueur nommé "marqueur", le code contenu à l'intérieur de function(){...code à exécuter...} sera exécuté */
	google.maps.Event.addListener(marqueur, 'click', function() {
		/* Efface tous les marqueurs présents sur la carte nommée "CarteZoom" */
		CarteZoom.clearOverlays();
		/*  La carte nommée "CarteZoom" est centrée sur le point auquel est ancré le marqueur nommé "marqueurzoom", avec un niveau de zoom égal à "ValZoom" */
		CarteZoom.setCenter(marqueurzoom.getPoint(),ValZoom);
		/* Ajout du marqueur nommé "marqueurzoom" sur la carte nommée "CarteZoom" */
		CarteZoom.addOverlay(marqueurzoom);
		/* Ouvre l'info-bulle liée au marqueur nommé "marqueurzoom", puis affiche à l'intérieur le contenu de "TexteAuFormatHTML" */
		marqueurzoom.openInfoWindowHtml(TexteAuFormatHTML, {maxWidth:160});
	});
	/* Ajout d'un observateur d'événement au marqueur nommé "marqueurzoom" */
	/* L'événement observé est "click". */
	/* Lorsqu'un clic sera détecté sur le marqueur nommé "marqueurzoom", le code contenu à l'intérieur de function(){...code à exécuter...} sera exécuté */
	google.maps.Event.addListener(marqueurzoom, 'click', function() {
		/* Ouvre l'info-bulle liée au marqueur nommé "marqueurzoom", puis affiche à l'intérieur le contenu de "TexteAuFormatHTML" */
		marqueurzoom.openInfoWindowHtml(TexteAuFormatHTML, {maxWidth:160});
	});
	/* Retourne marqueur */
	return marqueur;
}
/* Appelle la fonction "initialize" lorsque la page web sera chargée */
google.setOnLoadCallback(initialize);
</script>
<style type="text/css">
<!--
#contmap {
	position:relative;
	width:100%;
	height:400px;
	z-index:2;
}
#EmplacementDeMaCarte {
	float: left;
	width: 50%;
	height: 400px;
	border: none;
}
#EmplacementDeCarteZoom {
	float: right;
	width: 50%;
	height: 400px;
	border: none;
}
-->
</style>
</head>
<body>
<div id="contmap">
<!-- La carte nommée "maCarte", va venir s'afficher à l' intérieur de la -->
<!-- balise <div> ayant pour identifiant id="EmplacementDeMaCarte". -->
<div id="EmplacementDeMaCarte"></div>
<!-- La carte nommée "CarteZoom", va venir s'afficher à l' intérieur de la -->
<!-- balise <div> ayant pour identifiant id="EmplacementDeCarteZoom". -->
<div id="EmplacementDeCarteZoom"></div>
</div>
<!-- Si JavaScript n'est pas activé sur votre navigateur, le message d'alerte situé entre les balises <noscript></noscript> s'affichera -->
<noscript>
<p>Attention : </p>
<p>Afin de pouvoir utiliser Google Maps, JavaScript doit être activé.</p>
<p>Or, il semble que JavaScript est désactivé ou qu'il n'est pas supporté par votre navigateur.</p>
<p>Pour afficher Google Maps, activez JavaScript en modifiant les options de votre navigateur, puis essayez à nouveau.</p>
</noscript>
</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.com : Exemples et tutoriels sur l'API Google Maps</title>
<!-- Chargement du script Google Maps, version 2.x, en précisant votre clé -->
<script type="text/javascript" src="http://maps.google.com/maps?file=api&v=2.x&key=Inserez_Votre_Clef_API_Ici&sensor=false"></script>
<script type="text/javascript">
/* Déclaration des variables globales */
var maCarte;
var CarteZoom;
/* 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 <div> ayant pour identifiant id="EmplacementDeMaCarte" */
		maCarte = new GMap2(document.getElementById('EmplacementDeMaCarte'));
		/*  La carte nommée "maCarte" est centrée sur la Latitude 47.168076, la Longitude 0.235895, avec un niveau de zoom égal à 9 */
		maCarte.setCenter(new GLatLng(47.168076,0.235895), 9);
		/*  La carte nommée "maCarte" est fixe (on désactive la possibilité de la faire glisser) */
		maCarte.disableDragging();
		/*  Création d'une nouvelle carte nommée "CarteZoom" qui s'affichera à l'intérieur de la <div> ayant pour identifiant id="EmplacementDeCarteZoom" */
		CarteZoom = new GMap2(document.getElementById('EmplacementDeCarteZoom'), {mapTypes:[G_SATELLITE_MAP]});
		/*  La carte nommée "CarteZoom" est centrée sur la Latitude 47.168076, la Longitude 0.235895, avec un niveau de zoom égal à 9 */
		CarteZoom.setCenter(new GLatLng(47.168076,0.235895), 9);
		/*  Création d'un nouveau point nommé "point" à la Latitude : 47.168076 et à la Longitude : 0.235895 */
		var point = new GLatLng(47.168076,0.235895);
		/*  Création d'un nouveau marqueur nommé "marqueur" en appelant la fonction createMarker() */
		/*  Les paramètres suivants sont fournis à la fonction createMarker() : */
		/* point : point créé ci-dessus */
		/* 'Point caractéristique N° 1<br />Niveau de Zoom : 17' : Texte s'affichant dans l'info-bulle liée au marqueur */
		/* 'Marqueur 1' : Titre apparaissant sous le marqueur lorsque celui-ci est survolé par la souris */
		/* 17 : Niveau de zoom */
		var marqueur = createMarker(point,'Point caractéristique N° 1<br />Niveau de Zoom : 17','Marqueur 1',17)
		/* Ajoute sur la carte nommée "maCarte" le marqueur nommé "marqueur" */
		maCarte.addOverlay(marqueur);
		/*  Création d'un nouveau point nommé "point" à la Latitude : 47.268076 et à la Longitude : 0.235895 */
		var point = new GLatLng(47.268076,0.235895);
		/*  Création d'un nouveau marqueur nommé "marqueur" en appelant la fonction createMarker() */
		/*  Les paramètres suivants sont fournis à la fonction createMarker() : */
		/* point : point créé ci-dessus */
		/* 'Point caractéristique N° 2<br />Niveau de Zoom : 8' : Texte s'affichant dans l'info-bulle liée au marqueur */
		/* 'Marqueur 2' : Titre apparaissant sous le marqueur lorsque celui-ci est survolé par la souris */
		/* 8 : Niveau de zoom */
		var marqueur = createMarker(point,'Point caractéristique N° 2<br />Niveau de Zoom : 8','Marqueur 2',8)
		/* Ajoute sur la carte nommée "maCarte" le marqueur nommé "marqueur" */
		maCarte.addOverlay(marqueur);
		/*  Création d'un nouveau point nommé "point" à la Latitude : 47.168076 et à la Longitude : 0.335895 */
		var point = new GLatLng(47.168076,0.335895);
		/*  Création d'un nouveau marqueur nommé "marqueur" en appelant la fonction createMarker() */
		/*  Les paramètres suivants sont fournis à la fonction createMarker() : */
		/* point : point créé ci-dessus */
		/* 'Point caractéristique N° 3<br />Niveau de Zoom : 12' : Texte s'affichant dans l'info-bulle liée au marqueur */
		/* 'Marqueur 3' : Titre apparaissant sous le marqueur lorsque celui-ci est survolé par la souris */
		/* 12 : Niveau de zoom */
		var marqueur = createMarker(point,'Point caractéristique N° 3<br />Niveau de Zoom : 12','Marqueur 3',12)
		/* Ajoute sur la carte nommée "maCarte" le marqueur nommé "marqueur" */
		maCarte.addOverlay(marqueur);
	}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 createMarker() */
/* Les paramètres suivants sont fournis à la fonction createMarker() : */
/* point : point sur lequel sera ancré le marqueur */
/* TexteAuFormatHTML : Texte au format HTML s'affichant dans l'info-bulle liée au marqueur */
/* Titre : Titre apparaissant sous le marqueur lorsque celui-ci est survolé par la souris */
/* ValeurDuZoom : Niveau de zoom */
function createMarker(point,TexteAuFormatHTML,Titre,ValeurDuZoom) {
	/* Création d'un nouveau marqueur nommé "marqueur" ancré sur le point nommé "point" */
	/* L'option "title:" permet d'afficher le contenu de "Titre" sous le marqueur lorsque celui-ci est survolé par la souris */
	var marqueur = new GMarker(point,{title:Titre});
	/* Création d'un nouveau marqueur nommé "marqueurzoom" ancré sur le point nommé "point" */
	var marqueurzoom = new GMarker(point);
	/* ValZoom = ValeurDuZoom */
	var ValZoom = ValeurDuZoom;
	/* Ajout d'un observateur d'événement au marqueur nommé "marqueur" */
	/* L'événement observé est "click". */
	/* Lorsqu'un clic sera détecté sur le marqueur nommé "marqueur", le code contenu à l'intérieur de function(){...code à exécuter...} sera exécuté */
	GEvent.addListener(marqueur, 'click', function() {
		/* Efface tous les marqueurs présents sur la carte nommée "CarteZoom" */
		CarteZoom.clearOverlays();
		/*  La carte nommée "CarteZoom" est centrée sur le point auquel est ancré le marqueur nommé "marqueurzoom", avec un niveau de zoom égal à "ValZoom" */
		CarteZoom.setCenter(marqueurzoom.getPoint(),ValZoom);
		/* Ajout du marqueur nommé "marqueurzoom" sur la carte nommée "CarteZoom" */
		CarteZoom.addOverlay(marqueurzoom);
		/* Ouvre l'info-bulle liée au marqueur nommé "marqueurzoom", puis affiche à l'intérieur le contenu de "TexteAuFormatHTML" */
		marqueurzoom.openInfoWindowHtml(TexteAuFormatHTML, {maxWidth:160});
	});
	/* Ajout d'un observateur d'événement au marqueur nommé "marqueurzoom" */
	/* L'événement observé est "click". */
	/* Lorsqu'un clic sera détecté sur le marqueur nommé "marqueurzoom", le code contenu à l'intérieur de function(){...code à exécuter...} sera exécuté */
	GEvent.addListener(marqueurzoom, 'click', function() {
		/* Ouvre l'info-bulle liée au marqueur nommé "marqueurzoom", puis affiche à l'intérieur le contenu de "TexteAuFormatHTML" */
		marqueurzoom.openInfoWindowHtml(TexteAuFormatHTML, {maxWidth:160});
	});
	/* Retourne marqueur */
	return marqueur;
}
/* Appelle la fonction "initialize" lorsque la page web sera chargée */
</script>
<style type="text/css">
<!--
#contmap {
	position:relative;
	width:100%;
	height:400px;
	z-index:2;
}
#EmplacementDeMaCarte {
	float: left;
	width: 50%;
	height: 400px;
	border: none;
}
#EmplacementDeCarteZoom {
	float: right;
	width: 50%;
	height: 400px;
	border: 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 id="contmap">
<!-- La carte nommée "maCarte", va venir s'afficher à l' intérieur de la -->
<!-- balise <div> ayant pour identifiant id="EmplacementDeMaCarte". -->
<div id="EmplacementDeMaCarte"></div>
<!-- La carte nommée "CarteZoom", va venir s'afficher à l' intérieur de la -->
<!-- balise <div> ayant pour identifiant id="EmplacementDeCarteZoom". -->
<div id="EmplacementDeCarteZoom"></div>
</div>
<!-- Si JavaScript n'est pas activé sur votre navigateur, le message d'alerte situé entre les balises <noscript></noscript> s'affichera -->
<noscript>
<p>Attention : </p>
<p>Afin de pouvoir utiliser Google Maps, JavaScript doit être activé.</p>
<p>Or, il semble que JavaScript est désactivé ou qu'il n'est pas supporté par votre navigateur.</p>
<p>Pour afficher Google Maps, activez JavaScript en modifiant les options de votre navigateur, puis essayez à nouveau.</p>
</noscript>
</body>
</html>

Remarque(s)

L'exemple s'appuie sur trois marqueurs prédéfinis. Il est tout à fait possible de les extraire d'un fichier xml , json ou d'une base de données.

 

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