Utiliser le paramètre 'region' pour influencer les résultats du géocodeur

API Google Geocoding exemples et tutoriels en Français

Cartographie et webmapping

Partager ce tutoriel sur les réseaux sociaux
Signaler une erreur dans cet article

Limiter les résultats du géocodeur Google à un pays avec le paramètre 'region'

L'API Google Geocoding retourne des résultats influencés par la région (généralement le pays) depuis laquelle la requête a été envoyée.
Par exemple, une recherche sur "Vienne" peut retourner des résultats différents si elle est envoyée depuis un domaine situé en France ou en Autriche.

Vous pouvez forcer l'API Google Geocoding à retourner des résultats influencés/limités à une région particulière, en utilisant le paramètre region.
Ce paramètre peut prendre comme valeur un ccTLD (code pays correspondant au domaine de premier niveau) spécifiant la région influençant le résultat.
La plupart des codes ccTLD sont identiques à ceux de l'ISO 3166-1, à quelques exceptions près. Par exemple, le ccTLD du Royaume-Uni est "uk" (.co.uk) tandis que son code ISO 3166-1 est "gb" (techniquement pour l'entité du "Royaume-Uni de Grande-Bretagne et d'Irlande du Nord").

Les résultats du géocodage peuvent être influencés par chaque domaine dans lequel l'application Google Maps est officiellement lancée.
Notez que seuls les résultats spécifiques au domaine indiqués sont privilégiés. Si des résultats plus pertinents existent en dehors de ce domaine, ils peuvent être inclus.

Définir un pays pour influencer le géocodeur avec réponse au format JSON

Par exemple, le géocodage de "Vienne" retourne ce résultat, comme si le domaine par défaut pour l'API Google Geocoding était défini sur l'Autriche :

Requête :

https://maps.googleapis.com/maps/api/geocode/json?address=Vienne&sensor=true_OU_false

Important : dans la requête ci-dessus le paramètre sensor a été laissé volontairement avec la variable true_OU_false afin de souligner que vous devez définir impérativement cette valeur de façon explicite sur true ou sur false.

Voici la réponse au format JSON :

/**
 * Requête envoyée aux serveurs de Google : 
 */
 
https://maps.googleapis.com/maps/api/geocode/json?address=Vienne&sensor=false

/**
 * Ci-dessous la réponse retournée au format JSON :
 */

{
   "results" : [
      {
         "address_components" : [
            {
               "long_name" : "Vienne",
               "short_name" : "Vienne",
               "types" : [ "locality", "political" ]
            },
            {
               "long_name" : "Vienne",
               "short_name" : "Vienne",
               "types" : [ "administrative_area_level_1", "political" ]
            },
            {
               "long_name" : "Autriche",
               "short_name" : "AT",
               "types" : [ "country", "political" ]
            }
         ],
         "formatted_address" : "Vienne, Autriche",
         "geometry" : {
            "bounds" : {
               "northeast" : {
                  "lat" : 48.3231,
                  "lng" : 16.5775
               },
               "southwest" : {
                  "lat" : 48.11827,
                  "lng" : 16.18262
               }
            },
            "location" : {
               "lat" : 48.2081743,
               "lng" : 16.3738189
            },
            "location_type" : "APPROXIMATE",
            "viewport" : {
               "northeast" : {
                  "lat" : 48.3231,
                  "lng" : 16.5775
               },
               "southwest" : {
                  "lat" : 48.11827,
                  "lng" : 16.18262
               }
            }
         },
         "types" : [ "locality", "political" ]
      }
   ],
   "status" : "OK"
}

Cliquez sur le lien ci-desssous pour voir le résultat dans votre navigateur :

https://maps.googleapis.com/maps/api/geocode/json?address=Vienne&sensor=false

Le géocodage de "Vienne" avec le paramètre region=fr (France) retournera la ville Française.

Requête :

https://maps.googleapis.com/maps/api/geocode/json?address=Vienne&region=fr&sensor=true_OU_false

Important : dans la requête ci-dessus le paramètre sensor a été laissé volontairement avec la variable true_OU_false afin de souligner que vous devez définir impérativement cette valeur de façon explicite sur true ou sur false.

Voici la réponse au format JSON :

/**
 * Requête envoyée aux serveurs de Google : 
 */ 

 https://maps.googleapis.com/maps/api/geocode/json?address=Vienne&region=fr&sensor=false

/**
 * Ci-dessous la réponse retournée au format JSON :
 */


{
   "results" : [
      {
         "address_components" : [
            {
               "long_name" : "Vienne",
               "short_name" : "Vienne",
               "types" : [ "locality", "political" ]
            },
            {
               "long_name" : "Isère",
               "short_name" : "38",
               "types" : [ "administrative_area_level_2", "political" ]
            },
            {
               "long_name" : "Rhône-Alpes",
               "short_name" : "RA",
               "types" : [ "administrative_area_level_1", "political" ]
            },
            {
               "long_name" : "France",
               "short_name" : "FR",
               "types" : [ "country", "political" ]
            }
         ],
         "formatted_address" : "Vienne, France",
         "geometry" : {
            "bounds" : {
               "northeast" : {
                  "lat" : 45.557463,
                  "lng" : 4.923409899999999
               },
               "southwest" : {
                  "lat" : 45.4867009,
                  "lng" : 4.837251999999999
               }
            },
            "location" : {
               "lat" : 45.525587,
               "lng" : 4.874339
            },
            "location_type" : "APPROXIMATE",
            "viewport" : {
               "northeast" : {
                  "lat" : 45.557463,
                  "lng" : 4.923409899999999
               },
               "southwest" : {
                  "lat" : 45.4867009,
                  "lng" : 4.837251999999999
               }
            }
         },
         "types" : [ "locality", "political" ]
      }
   ],
   "status" : "OK"
}

Cliquez sur le lien ci-desssous pour voir le résultat dans votre navigateur :

https://maps.googleapis.com/maps/api/geocode/json?address=Vienne&region=fr&sensor=false

Définir un pays pour influencer le géocodeur avec réponse au format XML

Les exemples qui suivent sont identiques aux précédents. Seul le format de sortie change : XML.

Par exemple, le géocodage de "Vienne" retourne ce résultat, comme si le domaine par défaut pour l'API Google Geocoding était défini sur les Etats-Unis :

Requête :

https://maps.googleapis.com/maps/api/geocode/xml?address=Vienne&sensor=true_OU_false

Important : dans la requête ci-dessus le paramètre sensor a été laissé volontairement avec la variable true_OU_false afin de souligner que vous devez définir impérativement cette valeur de façon explicite sur true ou sur false.

Voici la réponse au format XML :

/**
 * Requête envoyée aux serveurs de Google : 
 */

https://maps.googleapis.com/maps/api/geocode/xml?address=Vienne&sensor=false

/**
 * Ci-dessous la réponse retournée au format XML :
 */

<?xml version="1.0" encoding="UTF-8"?>
<GeocodeResponse>
	<status>OK</status>
	<result>
		<type>locality</type>
		<type>political</type>
		<formatted_address>Vienne, Autriche</formatted_address>
		<address_component>
			<long_name>Vienne</long_name>
			<short_name>Vienne</short_name>
			<type>locality</type>
			<type>political</type>
		</address_component>
		<address_component>
			<long_name>Vienne</long_name>
			<short_name>Vienne</short_name>
			<type>administrative_area_level_1</type>
			<type>political</type>
		</address_component>
		<address_component>
			<long_name>Autriche</long_name>
			<short_name>AT</short_name>
			<type>country</type>
			<type>political</type>
		</address_component>
		<geometry>
			<location>
				<lat>48.2081743</lat>
				<lng>16.3738189</lng>
			</location>
			<location_type>APPROXIMATE</location_type>
			<viewport>
				<southwest>
					<lat>48.1182700</lat>
					<lng>16.1826200</lng>
				</southwest>
				<northeast>
					<lat>48.3231000</lat>
					<lng>16.5775000</lng>
				</northeast>
			</viewport>
			<bounds>
				<southwest>
					<lat>48.1182700</lat>
					<lng>16.1826200</lng>
				</southwest>
				<northeast>
					<lat>48.3231000</lat>
					<lng>16.5775000</lng>
				</northeast>
			</bounds>
		</geometry>
	</result>
</GeocodeResponse>

Cliquez sur le lien ci-desssous pour voir le résultat dans votre navigateur :

https://maps.googleapis.com/maps/api/geocode/xml?address=Vienne&sensor=false

Le géocodage de "Vienne" avec le paramètre region=fr (France) retournera la ville Française.

Requête :

https://maps.googleapis.com/maps/api/geocode/xml?address=Vienne&region=fr&sensor=true_OU_false

Important : dans la requête ci-dessus le paramètre sensor a été laissé volontairement avec la variable true_OU_false afin de souligner que vous devez définir impérativement cette valeur de façon explicite sur true ou sur false.

Voici la réponse au format XML :

/**
 * Requête envoyée aux serveurs de Google : 
 */

https://maps.googleapis.com/maps/api/geocode/xml?address=Vienne&region=fr&sensor=false

/**
 * Ci-dessous la réponse retournée au format XML :
 */

<?xml version="1.0" encoding="UTF-8"?>
<GeocodeResponse>
	<status>OK</status>
	<result>
		<type>locality</type>
		<type>political</type>
		<formatted_address>Vienne, France</formatted_address>
		<address_component>
			<long_name>Vienne</long_name>
			<short_name>Vienne</short_name>
			<type>locality</type>
			<type>political</type>
		</address_component>
		<address_component>
			<long_name>Isère</long_name>
			<short_name>38</short_name>
			<type>administrative_area_level_2</type>
			<type>political</type>
		</address_component>
		<address_component>
			<long_name>Rhône-Alpes</long_name>
			<short_name>RA</short_name>
			<type>administrative_area_level_1</type>
			<type>political</type>
		</address_component>
		<address_component>
			<long_name>France</long_name>
			<short_name>FR</short_name>
			<type>country</type>
			<type>political</type>
		</address_component>
		<geometry>
			<location>
				<lat>45.5255870</lat>
				<lng>4.8743390</lng>
			</location>
			<location_type>APPROXIMATE</location_type>
			<viewport>
				<southwest>
					<lat>45.4867009</lat>
					<lng>4.8372520</lng>
				</southwest>
				<northeast>
					<lat>45.5574630</lat>
					<lng>4.9234099</lng>
				</northeast>
			</viewport>
			<bounds>
				<southwest>
					<lat>45.4867009</lat>
					<lng>4.8372520</lng>
				</southwest>
				<northeast>
					<lat>45.5574630</lat>
					<lng>4.9234099</lng>
				</northeast>
			</bounds>
		</geometry>
	</result>
</GeocodeResponse>

Cliquez sur le lien ci-desssous pour voir le résultat dans votre navigateur :

https://maps.googleapis.com/maps/api/geocode/xml?address=Vienne&region=fr&sensor=false