IGN

Géoservices IGN

Géocodage inverse

Dernière mise à jour : 23 Janvier 2017

Table des matières

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.

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 votre clef d’accès à la plateforme Géoportail

Chaque type de géocodage inverse est associé à une ressource à laquelle la clef d’accès doit être associée. La liste des ressources est disponible ici.

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 :

<?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>

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:CircleByCenterPoint permet de spécifier un cercle à l’intérieur duquel la recherche s’effectuera :

NB : le rayon du cercle ne peut pas dépasser 1000 metres. Une erreur sera retournée sinon.

Recherche avec une contrainte polygonale

Le XML suivant est un exemple de requête de Géocodage inverse relativement à un point et limitée à un polygone :

<?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:Polygon>
                  <gml:exterior>
                      <gml:LinearRing>
                          <gml:pos>48.8033 2.3241</gml:pos>
                          <gml:pos>48.8033 2.3242</gml:pos>
                          <gml:pos>48.8032 2.3242</gml:pos>
                          <gml:pos>48.8032 2.3241</gml:pos>         
                      </gml:LinearRing>
                  </gml:exterior>
               </gml:Polygon>
            </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://gpp3-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 :

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.