Géocodage inverse (OGC)
- Généralités
- Connexion au service de géocodage inverse du Géoportail
- Requêtes GET KVP
Table des matières
Titre
Généralités
Le service de géocodage inverse a pour but de retourner, à partir d’un ou plusieurs points géographiques indiqués en latitude/longitude, la ou les entités géolocalisées les plus proches correspondantes, parmi les adresses, toponymes, parcelles cadastrales, et/ou unités administratives.
Le géocodage inverse des adresses permet d’obtenir les adresses les plus proches à partir de coordonnées géographiques. Pour cela, il effectue une projection de la position sur les rues environnantes, et renvoie les coordonnées de la projection la plus proche, avec un numéro interpolé calculé à partir des numéros voisins.
Le géocodage inverse des lieux-dits permet d’obtenir le lieu-dit le plus proche à partir de coordonnées géographiques. La plupart du temps, les 3 premières réponses correspondent à la ville, le département et la région sous la géométrie de la requête.
Le géocodage inverse des parcelles cadastrales permet d’obtenir les parcelles cadastrales les plus proches à partir de coordonnées géographiques.
Les données de référence utilisées au sein du service de géocodage inverse proviennent de la base de données IGN BD ADRESSE® pour le géocodage inverse des adresses, du thème Toponymes de la base de données IGN BD TOPO® pour le géocodage inverse des noms de lieux et de la BD PARCELLAIRE® pour le géocodage inverse des parcelles cadastrales.
La géocodage inverse des noms de lieux lieu inclut également les départements et les régions.
Le service de géocodage inverse du Géoportail implémente le protocole OpenLS “Location Utility Service” qui est un standard défini par l’OGC (Open Geospatial Consortium). On peut consulter le document de référence sur le site de l’OGC.
Titre
Connexion au service de géocodage inverse du Géoportail
Le service de géocodage inverse est accessible à l’adresse suivante (la même que celle du Géocodage direct) :
http(s)://wxs.ign.fr/CLEF/geoportail/ols?
Le paramètre CLEF doit être remplacé par l'une des clés partagées de type "essentiels" ou "calcul".
Chaque type de géocodage inverse est associé à une ressource à laquelle la clé d’accès doit être associée.
Les requêtes OpenLS peuvent être soit des requêtes HTTP POST XML, soit des requêtes HTTP GET en KVP comme expliqué ci-après pour chaque type de géocodage.
-
Corps de la requête du POST XML
-
Recherche simple
-
Le XML suivant est un exemple de requête de Géocodage inverse simple relativement à un point :
( Préciser dans le Headers Name: Content-Type et Value: application/xml )
<?xml version="1.0" encoding="UTF-8"?>
<XLS version="1.2"
xmlns="http://www.opengis.net/xls"
xmlns:gml="http://www.opengis.net/gml"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.opengis.net/xls http://schemas.opengis.net/ols/1.2/olsAll.xsd">
<RequestHeader/>
<Request methodName="ReverseGeocodeRequest" maximumResponses="10" requestID="abc" version="1.2">
<ReverseGeocodeRequest>
<ReverseGeocodePreference>StreetAddress</ReverseGeocodePreference>
<Position>
<gml:Point>
<gml:pos>48.8033333 2.3241667</gml:pos>
</gml:Point>
</Position>
</ReverseGeocodeRequest>
</Request>
</XLS>
- La balise <Request> contient les paramètres de la requête ; l’attribut maximumResponses permet de limiter le nombre de réponses à une valeur particulière.
- La balise <ReverseGeocodePreference> permet de spécifier le type de localisant retourné :
- StreetAddress : des adresses seront retournées ;
- PositionOfInterest : des toponymes seront retournées ;
- CadastralParcel : des parcelles cadastrales seront retournées ;
- Administratif : des unités administratives (départements et régions) seront retournées ;
- pour rechercher plusieurs types de localisant à la fois (par exemple adresses et toponymes), il faut utiliser plusieurs occurences de la balise ReverseGeocodePreference, une pour chaque localisant.
- la balise <Position> contient les coordonnées (latitude longitude) du point à partir duquel lancer la recherche ;
-
Recherche avec une contrainte de distance
Le XML suivant est un exemple de requête de Géocodage inverse relativement à un point avec un rayon limite de recherche :
<?xml version="1.0" encoding="UTF-8"?>
<XLS version="1.2"
xmlns="http://www.opengis.net/xls"
xmlns:gml="http://www.opengis.net/gml"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.opengis.net/xls http://schemas.opengis.net/ols/1.2/olsAll.xsd">
<RequestHeader/>
<Request methodName="ReverseGeocodeRequest" maximumResponses="10" requestID="abc" version="1.2">
<ReverseGeocodeRequest>
<ReverseGeocodePreference>StreetAddress</ReverseGeocodePreference>
<Position>
<gml:Point>
<gml:pos>48.8033333 2.3241667</gml:pos>
</gml:Point>
<gml:CircleByCenterPoint>
<gml:pos>48.8033333 2.3241667</gml:pos>
<gml:radius>150</gml:radius>
</gml:CircleByCenterPoint>
</Position>
</ReverseGeocodeRequest>
</Request>
</XLS>
La balise gml:Polygon permet de décrire le contour du polygone (ici, un rectangle).
-
Réponse du service
La réponse du service est un document XML conforme à la syntaxe définie par le standard OpenLS version 1.2. Ce qui suit est un exemple réponse retournée :
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<XLS version="1.2" xsi:schemaLocation="http://wxs.ign.fr/schemas/olsAll.xsd" xmlns:xls="http://www.opengis.net/xls" xmlns="http://www.opengis.net/xls" xmlns:xlsext="http://www.opengis.net/xlsext" xmlns:gml="http://www.opengis.net/gml" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<ResponseHeader/>
<Response version="1.2" requestID="abc">
<ReverseGeocodeResponse>
<ReverseGeocodedLocation>
<gml:Point>
<gml:pos>48.803159 2.324278</gml:pos>
</gml:Point>
<Address countryCode="StreetAddress">
<StreetAddress>
<Building number="580"/>
<Street>av aristide briand</Street>
</StreetAddress>
<Place type="Municipality">Bagneux</Place>
<PostalCode>92220</PostalCode>
</Address>
<xlsext:ExtendedGeocodeMatchCode>point adresse</xlsext:ExtendedGeocodeMatchCode>
<SearchCentreDistance value="23.02"/>
</ReverseGeocodedLocation>
(...)
</ReverseGeocodeResponse>
</Response>
</XLS>
La balise <ReverseGeocodeResponse> contient l’ensemble des localisants trouvés :
- la balise <ReverseGeocodedLocation> décrit un localisant trouvé :
- la balise <gml:Point> contient les coordonnées du localisant ;
- la balise <Address> contient les caractéristiques du localisant ; la valeur de l’attribut countryCode indique le type de localisant (“StreetAddress” pour une adresse, “PositionOfInterest” pour un toponyme, “Administratif” pour une unité administrative, “CadastralParcel” pour une parcelle cadastrale) ;
- la balise <SearchCentreDistance> indique la distance entre le point de recherche et la géométrie du localisant trouvé.
Titre
Requêtes GET KVP
Toutes les requêtes précédentes peuvent aussi être passée avec la méthode HTTP GET en mode KVP (Key Value Pair) dans l’URL.
Le principe est exactement le même que celui expliqué pour le service de Géocodage direct.