Utiliser le paramètre 'bounds' 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 à une zone géopraphique avec le paramètre 'bounds'

Vous pouvez demander au service de géocodage de privilégier les résultats situés à l'intérieur d'une zone géographique donnée.
Cette zone géographique est définie, dans l'URL de la requête, à l'aide du paramètre bounds.
Notez que seuls les résultats situés dans la zone géographique d'influence sont retenus. Si des résultats plus pertinents existent en dehors de cette zone, ils peuvent être inclus.

Le paramètre bounds définit les coordonnées latitude/longitude des coins Sud-Ouest et Nord-Est de la zone d'influence géographique. Les coordonnées de chaque coin sont séparées à l'aide du caractère 'pipe' (|).

Définir une zone géographique pour influencer le géocodeur avec réponse au format JSON

Par exemple, le géocodage de "Winnetka" renvoie généralement cette banlieue de Chicago :

Requête :

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

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

Réponse :

/**
 * Requête envoyée aux serveurs de Google :
 */
   https://maps.googleapis.com/maps/api/geocode/json?address=Winnetka&sensor=false
/**
 * Ci-dessous la réponse retournée au format json :
 */
 
 {
   "results" : [
      {
         "address_components" : [
            {
               "long_name" : "Winnetka",
               "short_name" : "Winnetka",
               "types" : [ "locality", "political" ]
            },
            {
               "long_name" : "New Trier",
               "short_name" : "New Trier",
               "types" : [ "administrative_area_level_3", "political" ]
            },
            {
               "long_name" : "Comté de Cook",
               "short_name" : "Comté de Cook",
               "types" : [ "administrative_area_level_2", "political" ]
            },
            {
               "long_name" : "Illinois",
               "short_name" : "IL",
               "types" : [ "administrative_area_level_1", "political" ]
            },
            {
               "long_name" : "États-Unis",
               "short_name" : "US",
               "types" : [ "country", "political" ]
            }
         ],
         "formatted_address" : "Winnetka, IL, États-Unis",
         "geometry" : {
            "bounds" : {
               "northeast" : {
                  "lat" : 42.12822690,
                  "lng" : -87.710960
               },
               "southwest" : {
                  "lat" : 42.0886090,
                  "lng" : -87.77086290
               }
            },
            "location" : {
               "lat" : 42.10808340000001,
               "lng" : -87.7358950
            },
            "location_type" : "APPROXIMATE",
            "viewport" : {
               "northeast" : {
                  "lat" : 42.1246370,
                  "lng" : -87.70388020
               },
               "southwest" : {
                  "lat" : 42.09152539999999,
                  "lng" : -87.76790980
               }
            }
         },
         "types" : [ "locality", "political" ]
      }
   ],
   "status" : "OK"
}

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

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

Toutefois, l'ajout du paramètre bounds délimitant une zone géographique précise ( la vallée de San Fernando à Los Angeles ) retournera le quartier nommé "Winnetka" situé dans cette zone :

Requête :

https://maps.googleapis.com/maps/api/geocode/json?address=Winnetka&bounds=34.172684,-118.604794|34.236144,-118.500938&sensor=true_OU_false

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

Réponse

/**
 * Requête envoyée aux serveurs de Google :
 */
   https://maps.googleapis.com/maps/api/geocode/json?address=Winnetka&bounds=34.172684,-118.604794|34.236144,-118.500938&sensor=false
/**
 * Ci-dessous la réponse retournée au format json :
 *
 */
 
{
   "results" : [
      {
         "address_components" : [
            {
               "long_name" : "Winnetka",
               "short_name" : "Winnetka",
               "types" : [ "neighborhood", "political" ]
            },
            {
               "long_name" : "Los Angèle",
               "short_name" : "Los Angèle",
               "types" : [ "locality", "political" ]
            },
            {
               "long_name" : "Vallée de San Fernando",
               "short_name" : "Vallée de San Fernando",
               "types" : [ "administrative_area_level_3", "political" ]
            },
            {
               "long_name" : "Comté de Los Angeles",
               "short_name" : "Comté de Los Angeles",
               "types" : [ "administrative_area_level_2", "political" ]
            },
            {
               "long_name" : "Californie",
               "short_name" : "CA",
               "types" : [ "administrative_area_level_1", "political" ]
            },
            {
               "long_name" : "États-Unis",
               "short_name" : "US",
               "types" : [ "country", "political" ]
            }
         ],
         "formatted_address" : "Winnetka, Los Angeles, Californie, États-Unis",
         "geometry" : {
            "bounds" : {
               "northeast" : {
                  "lat" : 34.2353090,
                  "lng" : -118.55341910
               },
               "southwest" : {
                  "lat" : 34.1791050,
                  "lng" : -118.588320
               }
            },
            "location" : {
               "lat" : 34.20833330,
               "lng" : -118.57527780
            },
            "location_type" : "APPROXIMATE",
            "viewport" : {
               "northeast" : {
                  "lat" : 34.22678660,
                  "lng" : -118.5432630
               },
               "southwest" : {
                  "lat" : 34.1898760,
                  "lng" : -118.60729260
               }
            }
         },
         "types" : [ "neighborhood", "political" ]
      }
   ],
   "status" : "OK"
}

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

https://maps.googleapis.com/maps/api/geocode/json?address=Winnetka&bounds=34.172684,-118.604794|34.236144,-118.500938&sensor=false

Définir une zone géographique 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 "Winnetka" renvoie généralement cette banlieue de Chicago :

Requête :

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

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

Réponse :

/**
 * Requête envoyée aux serveurs de Google :
 */
   https://maps.googleapis.com/maps/api/geocode/xml?address=Winnetka&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>Winnetka, IL, États-Unis</formatted_address>
		<address_component>
			<long_name>Winnetka</long_name>
			<short_name>Winnetka</short_name>
			<type>locality</type>
			<type>political</type>
		</address_component>
		<address_component>
			<long_name>New Trier</long_name>
			<short_name>New Trier</short_name>
			<type>administrative_area_level_3</type>
			<type>political</type>
		</address_component>
		<address_component>
			<long_name>Comté de Cook</long_name>
			<short_name>Comté de Cook</short_name>
			<type>administrative_area_level_2</type>
			<type>political</type>
		</address_component>
		<address_component>
			<long_name>Illinois</long_name>
			<short_name>IL</short_name>
			<type>administrative_area_level_1</type>
			<type>political</type>
		</address_component>
		<address_component>
			<long_name>États-Unis</long_name>
			<short_name>US</short_name>
			<type>country</type>
			<type>political</type>
		</address_component>
		<geometry>
			<location>
				<lat>42.1080834</lat>
				<lng>-87.7358950</lng>
			</location>
			<location_type>APPROXIMATE</location_type>
			<viewport>
				<southwest>
					<lat>42.0915254</lat>
					<lng>-87.7679098</lng>
				</southwest>
				<northeast>
					<lat>42.1246370</lat>
					<lng>-87.7038802</lng>
				</northeast>
			</viewport>
			<bounds>
				<southwest>
					<lat>42.0886090</lat>
					<lng>-87.7708629</lng>
				</southwest>
				<northeast>
					<lat>42.1282269</lat>
					<lng>-87.7109600</lng>
				</northeast>
			</bounds>
		</geometry>
	</result>
</GeocodeResponse>

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

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

Toutefois, l'ajout du paramètre bounds délimitant une zone géographique précise ( la vallée de San Fernando à Los Angeles ) retournera le quartier nommé "Winnetka" situé dans cette zone :

Requête

https://maps.googleapis.com/maps/api/geocode/xml?address=Winnetka&bounds=34.172684,-118.604794|34.236144,-118.500938&sensor=true_OU_false

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

Réponse

/**
 * Requête envoyée aux serveurs de Google :
 */
   https://maps.googleapis.com/maps/api/geocode/xml?address=Winnetka&bounds=34.172684,-118.604794|34.236144,-118.500938&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>neighborhood</type>
		<type>political</type>
		<formatted_address>Winnetka, Los Angeles, Californie, États-Unis</formatted_address>
		<address_component>
			<long_name>Winnetka</long_name>
			<short_name>Winnetka</short_name>
			<type>neighborhood</type>
			<type>political</type>
		</address_component>
		<address_component>
			<long_name>Los Angèle</long_name>
			<short_name>Los Angèle</short_name>
			<type>locality</type>
			<type>political</type>
		</address_component>
		<address_component>
			<long_name>Vallée de San Fernando</long_name>
			<short_name>Vallée de San Fernando</short_name>
			<type>administrative_area_level_3</type>
			<type>political</type>
		</address_component>
		<address_component>
			<long_name>Comté de Los Angeles</long_name>
			<short_name>Comté de Los Angeles</short_name>
			<type>administrative_area_level_2</type>
			<type>political</type>
		</address_component>
		<address_component>
			<long_name>Californie</long_name>
			<short_name>CA</short_name>
			<type>administrative_area_level_1</type>
			<type>political</type>
		</address_component>
		<address_component>
			<long_name>États-Unis</long_name>
			<short_name>US</short_name>
			<type>country</type>
			<type>political</type>
		</address_component>
		<geometry>
			<location>
				<lat>34.2083333</lat>
				<lng>-118.5752778</lng>
			</location>
			<location_type>APPROXIMATE</location_type>
			<viewport>
				<southwest>
					<lat>34.1898760</lat>
					<lng>-118.6072926</lng>
				</southwest>
				<northeast>
					<lat>34.2267866</lat>
					<lng>-118.5432630</lng>
				</northeast>
			</viewport>
			<bounds>
				<southwest>
					<lat>34.1791050</lat>
					<lng>-118.5883200</lng>
				</southwest>
				<northeast>
					<lat>34.2353090</lat>
					<lng>-118.5534191</lng>
				</northeast>
			</bounds>
		</geometry>
	</result>
</GeocodeResponse>

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

https://maps.googleapis.com/maps/api/geocode/xml?address=Winnetka&bounds=34.172684,-118.604794|34.236144,-118.500938&sensor=false