Api Google Maps Version 2
Geocodeur
GÉOCODEUR INVERSE OU COMMENT TROUVER UNE ADRESSE A PARTIR DE COORDONNÉES

Api Google Maps Version 2  flèche Geocodeur  flèche Géocodeur inversé - Comment trouver une adresse postale à partir de coordonnées GPS.

GÉOCODEUR INVERSE OU COMMENT TROUVER UNE ADRESSE A PARTIR DE COORDONNÉES

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 : 07/01/2009
 

Présentation

L'API Google Maps vous permet de retrouver une adresse postale à partir de coordonnées GPS ( Latitude + Longitude ). On nomme cela le géocodage inversé.

Attention : le géocodage inversé n'est pas une science exacte. L'application de géocodage inversé va tenter de trouver l'adresse postale la plus proche, du point ciblé, avec un certain seuil de tolérance. Si aucune correspondance n'est trouvée, le code G_GEO_UNKNOWN_ADDRESS (602) est retourné.

Cliquez n'importe où sur la carte, pour voir s'afficher l'adresse postale correspondante la plus proche du point cliqué.

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"});
var maCarte;
var geocodeur;
var address;
/* 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.38882, la Longitude 0.689392, avec un niveau de zoom égal à 15 ... */
		maCarte.setCenter(new google.maps.LatLng(47.38882, 0.689392), 15);
/* ... Ajout à la carte nommée "maCarte" d'un bouton permettant de déplacer et de zoomer la carte ... */
		maCarte.addControl(new google.maps.LargeMapControl);
/* ... Ajout à la carte nommée "maCarte" d'un menu déroulant permettant de modifier le type de carte ... */
		maCarte.addControl(new google.maps.MenuMapTypeControl());
/* Ajout d'un observateur d'événement à la carte nommée   "maCarte" */
/* Lorsqu'un click sera détecté sur la carte nommée "maCarte" alors */
/* "getAddress" sera appelée.                                       */
/* Par défaut, "overlay" et "latlng" sont transmis à "getAdresse"   */
		GEvent.addListener(maCarte, "click", getAddress);
/* ... Création d'un nouveau géocodeur nommé "geocodeur" ... */
		geocodeur = new google.maps.ClientGeocoder();
/* 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 getAddress(overlay, latlng) */
/* overlay :  */
/* latlng  :  */
function getAddress(overlay, latlng) {
/* Si "latlng" n'est pas null ... */
	if (latlng != null) {
/* ... alors address = latlng ... */
		address = latlng;
/* ... et on demande au géocodeur nommé "geocodeur" de trouver l'adresse postale, en  ... */
/* ... envoyant une requête au service de géocodage de Google, correspondant au point ... */
/* ... ayant pour coordonnées "latlng" et, une fois la réponse obtenue, celle-ci sera ... */
/* ... traitée à l'aide de la fonction "showAdress".                                  ... */
		geocodeur.getLocations(latlng, showAddress);
	}
}
 
/* Fonction showAddress(response) */
/* response : Réponse retournée par le service de géocodage de Google */
function showAddress(response) {
/* ... Suppression de tous les recouvrements (info-bulles, marqueurs, etc.) présents sur la carte nommée "maCarte" ... */
	maCarte.clearOverlays();
/* ... Si la requête envoyée au service de géocodage de Google ne retourne ... */
/* ... aucune réponse, ou que le code de la réponse est différent de "200" ... */
	if (!response || response.Status.code != 200) {
/* ... Alors un message d'alerte s'affiche à l'écran, indiquant le code de la réponse ... */
		alert("Code Statut : " + response.Status.code);
/* ... Sinon, lorsque la requête envoyée au service de géocodage de Google est ok ... */
	} else {
/* ... place = sélection de la première réponse générée par le service de géocodage de Google ... */
		place = response.Placemark[0];
/* ... Création d'un point nommé "point" aux latitudes et longitudes de l'adresse postale la plus proche du point cliqué ... */
		point = new GLatLng(place.Point.coordinates[1], place.Point.coordinates[0]);
/* ... Création d'un marqueur nommé marker ancré sur le point "point" ... */
		marker = new GMarker(point);
/* ... Affiche sur la carte nommée "maCarte" le marqueur nommé "marker" ... */
		maCarte.addOverlay(marker);
/* ... Latitude_Longitude_point_clique = correspond à la longitude et à la latitude du point cliqué ... */
		Latitude_Longitude_point_clique = response.name;
/* ... Latitude_La_Plus_Proche_Adresse = correspond à la latitude de l'adresse postale la plus proche du point cliqué ... */
		Latitude_La_Plus_Proche_Adresse = place.Point.coordinates[0];
/* ... Longitude_La_Plus_Proche_Adresse = correspond à la longitude de l'adresse postale la plus proche du point cliqué ... */
		Longitude_La_Plus_Proche_Adresse = place.Point.coordinates[1];
/* ... Statut_De_La_Requete = Statut de la requête (équivalent aux codes HTML : 200, 400, 500, 601, 602, 603, 604, 610, 620) ... */
		Statut_De_La_Requete = response.Status.code;
/* ... Type_De_Requete = indique le type de requête : geocode ... */
		Type_De_Requete = response.Status.request;
/* ... Adresse_Postale_Complete = Adresse postale complète la plus proche du point cliqué ... */
		Adresse_Postale_Complete = place.address;
/* ... Niveau_De_Precision_Adresse = Niveau de précision de la réponse (code de 0 à 9) ... */
		Niveau_De_Precision_Adresse = place.AddressDetails.Accuracy;
/* ... Code_Pays_Adresse = Code du pays correspondant à l'adresse postale la plus proche du point cliqué (FR : France) ... */
		Code_Pays_Adresse = place.AddressDetails.Country.CountryNameCode;
/* ... Region_Adresse = Région correspondant à l'adresse postale la plus proche du point cliqué ... */
		Region_Adresse = place.AddressDetails.Country.AdministrativeArea.AdministrativeAreaName;
/* ... Departement_Adresse = Département correspondant à l'adresse postale la plus proche du point cliqué ... */
		Departement_Adresse = place.AddressDetails.Country.AdministrativeArea.SubAdministrativeArea.SubAdministrativeAreaName;
/* ... Ville_Adresse = Ville correspondant à l'adresse postale la plus proche du point cliqué ... */
		Ville_Adresse = place.AddressDetails.Country.AdministrativeArea.SubAdministrativeArea.Locality.LocalityName;
/* ... Rue_Adresse = Rue correspondant à l'adresse postale la plus proche du point cliqué ... */
		Rue_Adresse = place.AddressDetails.Country.AdministrativeArea.SubAdministrativeArea.Locality.Thoroughfare.ThoroughfareName;
/* ... Code_Postal_Adresse = Code postal correspondant à l'adresse postale la plus proche du point cliqué ... */
		Code_Postal_Adresse = place.AddressDetails.Country.AdministrativeArea.SubAdministrativeArea.Locality.PostalCode.PostalCodeNumber;
/* ... Ouverture d'une info-bulle ancrée au marqueur nommé "marker"   ... */
/* ... et dont on construit le contenu à partir des données ci-dessus ... */
		marker.openInfoWindowHtml(
			'<b>Latitude, Longitude du point cliqué  : </b>' + Latitude_Longitude_point_clique + '<br />' + 
			'<b>Type de requête : </b>' + Type_De_Requete + '<br />' +
			'<b>Status de la requête : </b>' + Statut_De_La_Requete + '<br />' +
			'<b>Niveau de précision : </b>' + Niveau_De_Precision_Adresse + '<br />' +
			'<b>Latitude adresse : </b>' + Latitude_La_Plus_Proche_Adresse + '<br />' +
			'<b>Longitude adresse : </b>' + Longitude_La_Plus_Proche_Adresse + '<br />' +
			'<b>Adresse postale : </b>' + Adresse_Postale_Complete + '<br />' +
			'<b>Code pays : </b> ' + Code_Pays_Adresse + '<br />' +
			'<b>Région : </b> ' + Region_Adresse + '<br />' +
			'<b>Département : </b> ' + Departement_Adresse + '<br />' +
			'<b>Ville : </b> ' + Ville_Adresse + '<br />' +
			'<b>Rue : </b> ' + Rue_Adresse + '<br />' +
			'<b>Code postal : </b> ' + Code_Postal_Adresse
		);
	}
}
/* Appelle la fonction "initialize" lorsque la page web sera chargée */
google.setOnLoadCallback(initialize);
//-->
</script>
</head>
 
 
<body>
<!-- La carte nommée "maCarte", va venir s'afficher à l' intérieur de -->
<!-- la balise <div> ayant pour identifiant id="EmplacementDeMaCarte". -->
<!-- Elle fera donc 100% de large et 400 pixels de haut. -->
<div id="EmplacementDeMaCarte" style="width: 100%; height: 400px"></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">
<!--
var maCarte;
var geocodeur;
var address;
/* 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.38882, la Longitude 0.689392, avec un niveau de zoom égal à 15 ... */
		maCarte.setCenter(new GLatLng(47.38882, 0.689392), 15);
/* ... Ajout à la carte nommée "maCarte" d'un bouton permettant de déplacer et de zoomer la carte ... */
		maCarte.addControl(new GLargeMapControl);
/* ... Ajout à la carte nommée "maCarte" d'un menu déroulant permettant de modifier le type de carte ... */
		maCarte.addControl(new GMenuMapTypeControl());
/* Ajout d'un observateur d'événement à la carte nommée   "maCarte" */
/* Lorsqu'un click sera détecté sur la carte nommée "maCarte" alors */
/* "getAddress" sera appelée.                                       */
/* Par défaut, "overlay" et "latlng" sont transmis à "getAdresse"   */
		GEvent.addListener(maCarte, "click", getAddress);
/* ... Création d'un nouveau géocodeur nommé "geocodeur" ... */
		geocodeur = new GClientGeocoder();
/* 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 getAddress(overlay, latlng) */
/* overlay :  */
/* latlng  :  */
function getAddress(overlay, latlng) {
/* Si "latlng" n'est pas null ... */
	if (latlng != null) {
/* ... alors address = latlng ... */
		address = latlng;
/* ... et on demande au géocodeur nommé "geocodeur" de trouver l'adresse postale, en  ... */
/* ... envoyant une requête au service de géocodage de Google, correspondant au point ... */
/* ... ayant pour coordonnées "latlng" et, une fois la réponse obtenue, celle-ci sera ... */
/* ... traitée à l'aide de la fonction "showAdress".                                  ... */
		geocodeur.getLocations(latlng, showAddress);
	}
}
 
/* Fonction showAddress(response) */
/* response : Réponse retournée par le service de géocodage de Google */
function showAddress(response) {
/* ... Suppression de tous les recouvrements (info-bulles, marqueurs, etc.) présents sur la carte nommée "maCarte" ... */
	maCarte.clearOverlays();
/* ... Si la requête envoyée au service de géocodage de Google ne retourne ... */
/* ... aucune réponse, ou que le code de la réponse est différent de "200" ... */
	if (!response || response.Status.code != 200) {
/* ... Alors un message d'alerte s'affiche à l'écran, indiquant le code de la réponse ... */
		alert("Code Statut : " + response.Status.code);
/* ... Sinon, lorsque la requête envoyée au service de géocodage de Google est ok ... */
	} else {
/* ... place = sélection de la première réponse générée par le service de géocodage de Google ... */
		place = response.Placemark[0];
/* ... Création d'un point nommé "point" aux latitudes et longitudes de l'adresse postale la plus proche du point cliqué ... */
		point = new GLatLng(place.Point.coordinates[1], place.Point.coordinates[0]);
/* ... Création d'un marqueur nommé marker ancré sur le point "point" ... */
		marker = new GMarker(point);
/* ... Affiche sur la carte nommée "maCarte" le marqueur nommé "marker" ... */
		maCarte.addOverlay(marker);
/* ... Latitude_Longitude_point_clique = correspond à la longitude et à la latitude du point cliqué ... */
		Latitude_Longitude_point_clique = response.name;
/* ... Latitude_La_Plus_Proche_Adresse = correspond à la latitude de l'adresse postale la plus proche du point cliqué ... */
		Latitude_La_Plus_Proche_Adresse = place.Point.coordinates[0];
/* ... Longitude_La_Plus_Proche_Adresse = correspond à la longitude de l'adresse postale la plus proche du point cliqué ... */
		Longitude_La_Plus_Proche_Adresse = place.Point.coordinates[1];
/* ... Statut_De_La_Requete = Statut de la requête (équivalent aux codes HTML : 200, 400, 500, 601, 602, 603, 604, 610, 620) ... */
		Statut_De_La_Requete = response.Status.code;
/* ... Type_De_Requete = indique le type de requête : geocode ... */
		Type_De_Requete = response.Status.request;
/* ... Adresse_Postale_Complete = Adresse postale complète la plus proche du point cliqué ... */
		Adresse_Postale_Complete = place.address;
/* ... Niveau_De_Precision_Adresse = Niveau de précision de la réponse (code de 0 à 9) ... */
		Niveau_De_Precision_Adresse = place.AddressDetails.Accuracy;
/* ... Code_Pays_Adresse = Code du pays correspondant à l'adresse postale la plus proche du point cliqué (FR : France) ... */
		Code_Pays_Adresse = place.AddressDetails.Country.CountryNameCode;
/* ... Region_Adresse = Région correspondant à l'adresse postale la plus proche du point cliqué ... */
		Region_Adresse = place.AddressDetails.Country.AdministrativeArea.AdministrativeAreaName;
/* ... Departement_Adresse = Département correspondant à l'adresse postale la plus proche du point cliqué ... */
		Departement_Adresse = place.AddressDetails.Country.AdministrativeArea.SubAdministrativeArea.SubAdministrativeAreaName;
/* ... Ville_Adresse = Ville correspondant à l'adresse postale la plus proche du point cliqué ... */
		Ville_Adresse = place.AddressDetails.Country.AdministrativeArea.SubAdministrativeArea.Locality.LocalityName;
/* ... Rue_Adresse = Rue correspondant à l'adresse postale la plus proche du point cliqué ... */
		Rue_Adresse = place.AddressDetails.Country.AdministrativeArea.SubAdministrativeArea.Locality.Thoroughfare.ThoroughfareName;
/* ... Code_Postal_Adresse = Code postal correspondant à l'adresse postale la plus proche du point cliqué ... */
		Code_Postal_Adresse = place.AddressDetails.Country.AdministrativeArea.SubAdministrativeArea.Locality.PostalCode.PostalCodeNumber;
/* ... Ouverture d'une info-bulle ancrée au marqueur nommé "marker"   ... */
/* ... et dont on construit le contenu à partir des données ci-dessus ... */
		marker.openInfoWindowHtml(
			'<b>Latitude, Longitude du point cliqué  : </b>' + Latitude_Longitude_point_clique + '<br />' + 
			'<b>Type de requête : </b>' + Type_De_Requete + '<br />' +
			'<b>Status de la requête : </b>' + Statut_De_La_Requete + '<br />' +
			'<b>Niveau de précision : </b>' + Niveau_De_Precision_Adresse + '<br />' +
			'<b>Latitude adresse : </b>' + Latitude_La_Plus_Proche_Adresse + '<br />' +
			'<b>Longitude adresse : </b>' + Longitude_La_Plus_Proche_Adresse + '<br />' +
			'<b>Adresse postale : </b>' + Adresse_Postale_Complete + '<br />' +
			'<b>Code pays : </b> ' + Code_Pays_Adresse + '<br />' +
			'<b>Région : </b> ' + Region_Adresse + '<br />' +
			'<b>Département : </b> ' + Departement_Adresse + '<br />' +
			'<b>Ville : </b> ' + Ville_Adresse + '<br />' +
			'<b>Rue : </b> ' + Rue_Adresse + '<br />' +
			'<b>Code postal : </b> ' + Code_Postal_Adresse
		);
	}
}
//-->
</script>
</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 100% de large et 400 pixels de haut. -->
<div id="EmplacementDeMaCarte" style="width: 100%; height: 400px"></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