Api Google Maps Version 2
Itineraire
ITINÉRAIRE PIÉTON OU ROUTIER AVEC OU SANS AUTOROUTE
GDirections - travelMode - avoidHighways - preserveViewport
G_TRAVEL_MODE_DRIVING - G_TRAVEL_MODE_WALKING

Api Google Maps Version 2  flèche Itineraire  flèche Calculer un itinéraire pour piéton ou routier avec ou sans autoroutes.

ITINÉRAIRE PIÉTON OU ROUTIER AVEC OU SANS AUTOROUTE
GDirections - travelMode - avoidHighways - preserveViewport
G_TRAVEL_MODE_DRIVING - G_TRAVEL_MODE_WALKING

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 : 16/06/2009
 

Présentation

Nous avons vu, dans un précédent article ( Api Google Maps - Itineraire - Calculer un itinéraire routier - GDirections - google.maps.Directions ), comment calculer, par défaut, un itinéraire à l'aide de GDirections.

Le calcul de l'itinéraire peut être adapté à vos besoins à l'aide des options suivantes :

locale : si ce paramètre est fourni, il détermine la langue à utiliser pour afficher le résultat textuel de l'itinéraire.

  • locale:de - Allemand
  • locale:en - Anglais
  • locale:es - Espagnol
  • locale:fr - Français
  • locale:ja - Japonais
  • locale:ru - Russe
  • locale:de - Suisse
  • locale:th - Thaïlande

Il permet de passer outre le paramètre hl indiqué dans la balise <script> pour appeler le script Google Maps :


   <script type="text/javascript" src="http://maps.google.com/maps?file=api&v=2&key=votre_cle_api&hl=fr&sensor=true">

Si, les paramètres locale et hl ne sont pas spécifiés, alors la langue du navigateur sera utilisée par défaut.

travelMode - fixe le mode de déplacement à utiliser pour le calcul de l'itinéraire :

  • travelMode = G_TRAVEL_MODE_DRIVING : déplacement effectué par la route,
  • travelMode = G_TRAVEL_MODE_WALKING : déplacement effectué par les sentiers pédestres et trottoirs (lorsqu'ils sont disponibles).

avoidHighways - autorise ou non l'utilisation d'autoroutes pour le calcul de l'itinéraire :

  • avoidHighways = true : l'itinéraire doit éviter les autoroutes,
  • avoidHighways = false : l'itinéraire peut emprunter les autoroutes lorsqu'elles existent.

preserveViewport - recadre ou non la carte pour afficher la totalité de l'itinéraire calculé :

  • preserveViewport = true : le centre et le niveau de zoom de la carte ne seront pas optimisés afin d'afficher l'ensemble de l'itinéraire.
  • preserveViewport = false : le centre et le niveau de zoom de la carte seront optimisés afin d'afficher l'ensemble de l'itinéraire.

Carte

 

Départ : - Arrivée : - Langue :

: En voiture : Eviter les autoroutes - : A pied

: Ne pas recadrer la carte automatiquement

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.com : Calcul itinéraire routier et pédestre</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 */
var monItineraire;
var carteItineraire;
var texteItineraire;
var couleur;
var optionsItineraire={}
/* Fonction initialize() */
function initialize() {
/* Si le navigateur est compatible avec l'API de Google Maps ... */
if (google.maps.BrowserIsCompatible()) {
/* Options définies par défaut pour l'itinéraire */
optionsItineraire={
/* Type d'itinéraire : Routier */
	travelMode: G_TRAVEL_MODE_DRIVING,
/* Eviter les autoroutes : Vrai (=oui) */
	avoidHighways: true,
/* Préserver la vue actuelle : Vrai (=oui) */
	preserveViewport: true
};
/* ... Lorsqu'un "click" sera detecté sur le formulaire nommé "formulaire" alors ... */
document.formulaire.onclick = function(){
/* ... Si le bouton radio "En voiture" est coché ... */
	if(document.formulaire.drivingWalking[0].checked) {
/* ... alors l'option "travelMode" est égale à "G_TRAVEL_MODE_DRIVING" ... */
		optionsItineraire.travelMode=G_TRAVEL_MODE_DRIVING;
/* ... On autorise l'emploi de la case à cocher "Eviter les autoroutes" ... */
		document.formulaire.autoroutes.disabled = false;
/* ... Si la case à cocher "Eviter les autoroutes" est cochée ... */
/* ... alors couleur = "#FF0000" sinon  couleur = "#0000FF"   ... */
		document.formulaire.autoroutes.checked ? couleur = "#FF0000" :  couleur = "#0000FF";
	}
/* ... Si le bouton radio "A pied" est coché ... */
	if(document.formulaire.drivingWalking[1].checked) {
/* ... alors l'option "travelMode" est égale à "G_TRAVEL_MODE_WALKING" ... */
		optionsItineraire.travelMode=G_TRAVEL_MODE_WALKING
/* ... On décoche la case à cocher "Eviter les autoroutes" ... */
		document.formulaire.autoroutes.checked = false;
/* ... On interdit l'emploi de la case à cocher "Eviter les autoroutes" ... */
		document.formulaire.autoroutes.disabled = true;
/* ... Et couleur = "#CC00FF" ... */
		couleur = "#CC00FF";
	}
/* ... Si la case "Eviter les autoroutes" est cochée  alors l'option avoidHighways = true sinon avoidHighways = false ... */
	document.formulaire.autoroutes.checked ? optionsItineraire.avoidHighways=true : optionsItineraire.avoidHighways=false;
/* ... Si la case "Ne pas recadrer la carte automatiquement" est cochée  alors l'option preserveViewport = true sinon preserveViewport = false ... */
	document.formulaire.preserveViewport.checked ? optionsItineraire.preserveViewport=true : optionsItineraire.preserveViewport=false;
}
/* ... Création d'une nouvelle carte nommée "carteItineraire" qui s'affichera à l'intérieur de la balise <div> ayant pour identifiant id="EmplacementCarteItineraire" ... */
carteItineraire = new google.maps.Map2(document.getElementById("EmplacementCarteItineraire"));
/* ... La carte nommée "carteItineraire" est centrée sur la Latitude 47, la Longitude 2, avec un niveau de zoom égal à 5 ... */
carteItineraire.setCenter(new google.maps.LatLng(47,2), 5);
/* ... Affichage des boutons et contrôles tels qu'ils apparaîssent dans maps.google.fr  ... */
carteItineraire.setUIToDefault();
/* ... texteItineraire : correspond à la balise <div> ayant pour identifiant id="EmplacementTexteItineraire" ... */
texteItineraire = document.getElementById("EmplacementTexteItineraire");
/* ... Création d'un nouvel itinéraire nommé "monItineraire" ... */
/* ... Le résultat s'affichera sous forme de carte dans la carte nommée "carteItineraire" ... */
/* ... Le résultat s'affichera sous forme textuelle dans "texteItineraire" ... */
monItineraire = new google.maps.Directions(carteItineraire, texteItineraire);
/* ... lorsque le résultat du calcul de l'itinéraire nommé "monItineraire", ... */
/* ... est réussi et disponible, mais avant que toutes les informations ... */
/* ... ne viennent s'insérer dans la carte et dans le descriptif détaillé ... */
/* ... de l'itinéraire (="load"), alors la fonction "onGDirectionsLoad" est appelée ... */
google.maps.Event.addListener(monItineraire, "load", onGDirectionsLoad);
/* ... lorsque le résultat du calcul de l'itinéraire nommé "monItineraire", ... */
/* ... provoque une erreur (="error"), alors la fonction "handleErrors" est appelée ... */
google.maps.Event.addListener(monItineraire, "error", handleErrors);
}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 setDirections() */
/*  Cette fonction permet de calculer l'itinéraire demandé. */
/*  adresseDepart : Adresse de départ, */
/*  adresseArrivee : Adresse d'arrivé, */
/*  langue : Langue dans laquelle le descriptif détaillé de l'itinéraire doit apparaître, */
/*  optionsItineraire : Options applicables à l'itinéraire. */
function setDirections(adresseDepart, adresseArrivee, langue) {
	optionsItineraire.locale = langue;
	monItineraire.load("from: " + adresseDepart + " to: " + adresseArrivee, optionsItineraire);
}
/** Fonction onGDirectionsLoad() */
/*  Cette fonction va permettre de modifier la couleur du tracé de l'itinéraire  */
/*  en fonction de son type :  */
/*  piéton : Violet, */
/*  routier (sans autoroutes) : Bleu, */
/*  routier avec autoroute : Rouge. */
/*  Les paramètres modifiables sont : */
/*  color   : couleur de la ligne (=couleur), */
/*  weight  : épaisseur de la ligne en pixels(=5), */
/*  opacity : transparence de la ligne - valeur de 0 à 1. */
function onGDirectionsLoad(){ 
	monItineraire.getPolyline().setStrokeStyle({color: couleur, weight: 5, opacity: 1});
}
/** Fonction handleErrors() */
/*  Cette fonction permet d'afficher un message d'erreur lorsque le calcul de l'itinéraire */
/*  nommé "monItineraire" a échoué */
function handleErrors(){ 
/* Ouvre une fenêtre d'alerte, dans laquelle s'affiche un message suivi du code erreur */
	alert("Aïe ! Une erreur s'est produite - Code erreur : "+monItineraire.getStatus().code);
}
/* Appelle la fonction "initialize" lorsque la page web sera chargée */
google.setOnLoadCallback(initialize);
//]]>
</script>
<style type="text/css">
<!--
#EmplacementTexteItineraire {background-color: #FFFFFF;}
-->
</style>
</head>
 
<body>
<!-- La carte nommée "maCarte", va venir s'afficher à l' intérieur de -->
<!-- la balise <div> ayant pour identifiant id="EmplacementCarteItineraire". -->
<!-- Elle fera donc 70% de large et 400 pixels de haut. -->
<div id="EmplacementCarteItineraire" style="width:70%; height:340px; float:left;"></div>
<div id="EmplacementTexteItineraire" style="width:28%; height:340px; float:right; overflow: auto;background-color:white;"></div>
<p style="clear: both"> </p>
<div style="margin: 1em 0; padding:1em 0; height: auto; border: 1px solid #999; text-align:center; background-color: #eee;">
<form name="formulaire" action="javascript:void%200" onsubmit="setDirections(this.from.value, this.to.value, this.langue.value); return false">
<p style="text-indent:0; text-align:center;">
Départ : <input type="text" size="25" id="adresseDepart" name="from" value="Tours,fr" /> - 
Arrivée : <input type="text" name="to" size="25" id="adresseArrivee" value="Genève,ch" /> - 
Langue : <select name="langue" id="locale">
<option value="de">Allemand</option>
<option value="en">Anglais</option>
<option value="es">Espagnol</option>
<option value="fr" selected="selected">Français</option>
<option value="ja">Japonais</option>
<option value="ru">Russe</option>
<option value="de">Suisse</option>
<option value="th">Thaïlande</option>
</select><br /><br />
<input name="drivingWalking" type="radio" value="route" checked="checked" /> : <span style="color:#0000FF;font-weight: bold;">En voiture</span> : <input name="autoroutes" type="checkbox" value="" /> <span style="color:#FF0000;font-weight: bold;">Eviter les autoroutes</span> - <input name="drivingWalking" type="radio" value="pieton" /> : <span style="color:#CC00FF;font-weight: bold;">A pied</span><br /><br />
<input name="preserveViewport" type="checkbox" value="" /> : <span style="font-weight: bold;">Ne pas recadrer la carte automatiquement</span><br /><br />
<input name="submit" type="submit" value="Calculer l'itinéraire" />
</p>
</form>
</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 : Calcul itinéraire routier et pédestre</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 */
var monItineraire;
var carteItineraire;
var texteItineraire;
var couleur;
var optionsItineraire={}
/* Fonction initialize() */
function initialize() {
/* Si le navigateur est compatible avec l'API de Google Maps ... */
if (GBrowserIsCompatible()) {
/* Options définies par défaut pour l'itinéraire */
optionsItineraire={
/* Type d'itinéraire : Routier */
	travelMode: G_TRAVEL_MODE_DRIVING,
/* Eviter les autoroutes : Vrai (=oui) */
	avoidHighways: true,
/* Préserver la vue actuelle : Vrai (=oui) */
	preserveViewport: true
};
/* ... Lorsqu'un "click" sera detecté sur le formulaire nommé "formulaire" alors ... */
document.formulaire.onclick = function(){
/* ... Si le bouton radio "En voiture" est coché ... */
	if(document.formulaire.drivingWalking[0].checked) {
/* ... alors l'option "travelMode" est égale à "G_TRAVEL_MODE_DRIVING" ... */
		optionsItineraire.travelMode=G_TRAVEL_MODE_DRIVING;
/* ... On autorise l'emploi de la case à cocher "Eviter les autoroutes" ... */
		document.formulaire.autoroutes.disabled = false;
/* ... Si la case à cocher "Eviter les autoroutes" est cochée ... */
/* ... alors couleur = "#FF0000" sinon  couleur = "#0000FF"   ... */
		document.formulaire.autoroutes.checked ? couleur = "#FF0000" :  couleur = "#0000FF";
	}
/* ... Si le bouton radio "A pied" est coché ... */
	if(document.formulaire.drivingWalking[1].checked) {
/* ... alors l'option "travelMode" est égale à "G_TRAVEL_MODE_WALKING" ... */
		optionsItineraire.travelMode=G_TRAVEL_MODE_WALKING
/* ... On décoche la case à cocher "Eviter les autoroutes" ... */
		document.formulaire.autoroutes.checked = false;
/* ... On interdit l'emploi de la case à cocher "Eviter les autoroutes" ... */
		document.formulaire.autoroutes.disabled = true;
/* ... Et couleur = "#CC00FF" ... */
		couleur = "#CC00FF";
	}
/* ... Si la case "Eviter les autoroutes" est cochée  alors l'option avoidHighways = true sinon avoidHighways = false ... */
	document.formulaire.autoroutes.checked ? optionsItineraire.avoidHighways=true : optionsItineraire.avoidHighways=false;
/* ... Si la case "Ne pas recadrer la carte automatiquement" est cochée  alors l'option preserveViewport = true sinon preserveViewport = false ... */
	document.formulaire.preserveViewport.checked ? optionsItineraire.preserveViewport=true : optionsItineraire.preserveViewport=false;
}
/* ... Création d'une nouvelle carte nommée "carteItineraire" qui s'affichera à l'intérieur de la balise <div> ayant pour identifiant id="EmplacementCarteItineraire" ... */
carteItineraire = new GMap2(document.getElementById("EmplacementCarteItineraire"));
/* ... La carte nommée "carteItineraire" est centrée sur la Latitude 47, la Longitude 2, avec un niveau de zoom égal à 5 ... */
carteItineraire.setCenter(new GLatLng(47,2), 5);
/* ... Affichage des boutons et contrôles tels qu'ils apparaîssent dans maps.google.fr  ... */
carteItineraire.setUIToDefault();
/* ... texteItineraire : correspond à la balise <div> ayant pour identifiant id="EmplacementTexteItineraire" ... */
texteItineraire = document.getElementById("EmplacementTexteItineraire");
/* ... Création d'un nouvel itinéraire nommé "monItineraire" ... */
/* ... Le résultat s'affichera sous forme de carte dans la carte nommée "carteItineraire" ... */
/* ... Le résultat s'affichera sous forme textuelle dans "texteItineraire" ... */
monItineraire = new GDirections(carteItineraire, texteItineraire);
/* ... lorsque le résultat du calcul de l'itinéraire nommé "monItineraire", ... */
/* ... est réussi et disponible, mais avant que toutes les informations ... */
/* ... ne viennent s'insérer dans la carte et dans le descriptif détaillé ... */
/* ... de l'itinéraire (="load"), alors la fonction "onGDirectionsLoad" est appelée ... */
GEvent.addListener(monItineraire, "load", onGDirectionsLoad);
/* ... lorsque le résultat du calcul de l'itinéraire nommé "monItineraire", ... */
/* ... provoque une erreur (="error"), alors la fonction "handleErrors" est appelée ... */
GEvent.addListener(monItineraire, "error", handleErrors);
}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 setDirections() */
/*  Cette fonction permet de calculer l'itinéraire demandé. */
/*  adresseDepart : Adresse de départ, */
/*  adresseArrivee : Adresse d'arrivé, */
/*  langue : Langue dans laquelle le descriptif détaillé de l'itinéraire doit apparaître, */
/*  optionsItineraire : Options applicables à l'itinéraire. */
function setDirections(adresseDepart, adresseArrivee, langue) {
	optionsItineraire.locale = langue;
	monItineraire.load("from: " + adresseDepart + " to: " + adresseArrivee, optionsItineraire);
}
/** Fonction onGDirectionsLoad() */
/*  Cette fonction va permettre de modifier la couleur du tracé de l'itinéraire  */
/*  en fonction de son type :  */
/*  piéton : Violet, */
/*  routier (sans autoroutes) : Bleu, */
/*  routier avec autoroute : Rouge. */
/*  Les paramètres modifiables sont : */
/*  color   : couleur de la ligne (=couleur), */
/*  weight  : épaisseur de la ligne en pixels(=5), */
/*  opacity : transparence de la ligne - valeur de 0 à 1. */
function onGDirectionsLoad(){ 
	monItineraire.getPolyline().setStrokeStyle({color: couleur, weight: 5, opacity: 1});
}
/** Fonction handleErrors() */
/*  Cette fonction permet d'afficher un message d'erreur lorsque le calcul de l'itinéraire */
/*  nommé "monItineraire" a échoué */
function handleErrors(){ 
/* Ouvre une fenêtre d'alerte, dans laquelle s'affiche un message suivi du code erreur */
	alert("Aïe ! Une erreur s'est produite - Code erreur : "+monItineraire.getStatus().code);
}
//]]>
</script>
<style type="text/css">
<!--
#EmplacementTexteItineraire {background-color: #FFFFFF;}
-->
</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()">
<!-- La carte nommée "maCarte", va venir s'afficher à l' intérieur de -->
<!-- la balise <div> ayant pour identifiant id="EmplacementDeMaCarte". -->
<!-- Elle fera donc 70% de large et 400 pixels de haut. -->
<div id="EmplacementCarteItineraire" style="width:70%; height:340px; float:left;"></div>
<div id="EmplacementTexteItineraire" style="width:28%; height:340px; float:right; overflow: auto;background-color:white;"></div>
<p style="clear: both"> </p>
<div style="margin: 1em 0; padding:1em 0; height: auto; border: 1px solid #999; text-align:center; background-color: #eee;">
<form name="formulaire" action="javascript:void%200" onsubmit="setDirections(this.from.value, this.to.value, this.langue.value); return false">
<p style="text-indent:0; text-align:center;">
Départ : <input type="text" size="25" id="adresseDepart" name="from" value="Tours,fr" /> - 
Arrivée : <input type="text" name="to" size="25" id="adresseArrivee" value="Genève,ch" /> - 
Langue : <select name="langue" id="locale">
<option value="de">Allemand</option>
<option value="en">Anglais</option>
<option value="es">Espagnol</option>
<option value="fr" selected="selected">Français</option>
<option value="ja">Japonais</option>
<option value="ru">Russe</option>
<option value="de">Suisse</option>
<option value="th">Thaïlande</option>
</select><br /><br />
<input name="drivingWalking" type="radio" value="route" checked="checked" /> : <span style="color:#0000FF;font-weight: bold;">En voiture</span> : <input name="autoroutes" type="checkbox" value="" /> <span style="color:#FF0000;font-weight: bold;">Eviter les autoroutes</span> - <input name="drivingWalking" type="radio" value="pieton" /> : <span style="color:#CC00FF;font-weight: bold;">A pied</span><br /><br />
<input name="preserveViewport" type="checkbox" value="" /> : <span style="font-weight: bold;">Ne pas recadrer la carte automatiquement</span><br /><br />
<input name="submit" type="submit" value="Calculer l'itinéraire" />
</p>
</form>
</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>

 

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