FR:Nominatim

From OpenStreetMap Wiki
Jump to navigation Jump to search

Nominatim (du Latin, 'par le nom') est un outil permettant de chercher des données OSM par leur nom et leur adresse et de générer des adresses potentielles à partir d'un point OSM (reverse geocoding). L'outil peut être utilisé sur cette page : http://nominatim.openstreetmap.org. Nominatim est aussi utilisé comme un des moyens employé par l'outil Search de OpenStreetMap home page et améliore la recherche proposée sur les sites MapQuest Open Initiative, LocationIQ, PickPoint, OpenCage Geocoder, Geokeo Geocoder et Geocoding.ai.

Cette page propose des instructions d'utilisation. Pour des détails sur le fonctionnement interne de Nominatim, vous pouvez consulter le survol du développement ainsi qu'un début de FAQ.

Si vous rencontrez des problèmes avec les résultats de recherche, vous pouvez contribuer à leur amélioration en fournissant un nouveau cas de test ou soumettre un bug au travers de l'outil de tracking. Consultez aussi les notes de la Version 2.

Recherche

Nominatim crée un index des éléments nommés (ou numérotés) et d'une partie des éléments non nommés (pubs, hôtels, églises, etc.) à partir des ensembles de données OSM.

Les éléments de recherche sont analysés d'abord de la gauche vers la droite, puis de la droite vers la gauche en cas d'échec.

Ainsi ces deux demandes devraient réussir : pilkington avenue, birmingham birmingham, pilkington avenue

Les virgules sont optionnelles mais améliorent les performances en réduisant la complexité de la recherche. Ainsi,

 pilkington avenue birmingham

va fonctionner. Lorsque des numéros d'adresse sont renseignés, ils peuvent être utilisés :

 135 pilkington avenue, birmingham

Mots clés spéciaux

Un certain nombre de mots clés sont traduits pour effectuer des recherches spécifiques sur des tags OSM (par exemple, Pub => amenity=Pub). Une liste des traitements apportées sur les phrases spéciales est disponible.

Paramètres

 http://nominatim.openstreetmap.org/search?<params>
 http://nominatim.openstreetmap.org/search/<query>?<params>
 format=[html|xml|json|jsonv2]
   format demandé en sortie
 json_callback=<fonction>
   Encapsuler la sortie json dans une fonction de rappel (JSONP), par exemple <fonction>(<json>)
 accept-language=<language du navigateur>
   Permet de surcharger le language par défaut du navigateur avec un langage pour les résultats de recherche.
   Il est possible d'utiliser une chaîne accept-language au format standard rfc2616 ou une simple liste de codes de langage séparés par des virgules.
 q=<requête>
   La requête à utiliser pour la recherche. Elle peut aussi être saisie comme :
 street=<housenumber> <streetname>
 city=<city>
 county=<county>
 state=<state>
 country=<country>
 postalcode=<postalcode>
   (experimental) Format alternatif pour les requêtes structurées.
   Les requêtes structurées sont plus rapides et réclament moins de ressources serveur.
   NE LES COMBINEZ PAS AVEC LE PARAMÈTRE q=<query>Alternative query string format for structured requests. 
   Structured requests are faster and require less server resources. 
 countrycodes=<countrycode>[,<countrycode>][,<countrycode>]...
   Limite les résultats de recherche à un pays spécifique (ou une liste de pays). <countrycode> doit correspondre au code alpha2 de l'ISO 3166-1.
   Par exemple : gb pour UK, de pour l'Allemagne, etc...
 viewbox=<left>,<top>,<right>,<bottom>
 ou viewboxlbrt=<left>,<bottom>,<right>,<top>
   La zone préférée dans laquelle rechercher les résultats
 bounded=[0|1]
   Restreint les résultats de recherche aux éléments contenus dans la boîte de recherche.
   L'activation de cette restriction autorise aussi de recherche uniquement les équipements.
   Par exemple, une recherche contenant uniquement "[pub]" va normalement être rejetée, sauf si bounded=1
   est spécifié auquel cas une liste d'items dans la boîte de recherche sera retournée.
 polygon=[0|1]
   Émettre en sortie les contours sous forme de polygone des éléments trouvés.
 addressdetails=[0|1]
   Inclure une décomposition de l'adresse de chaque élément
 email=<adresse courriel valide>
   Si vous effectuez un grand nombre de recherche, veuillez indiquer en supplément un courriel valide ou alternativement
   inclure votre adresse mail dans la chaîne User-Agent.
   Cette information restera confidentielle et ne sera utilisé que pour vous contacter en cas de problème.
   Voir la politique d'utilisation pour plus de détails.
 exclude_place_ids=<place_id[,place_id][,place_id]>
   Si vous ne voulez pas voir certains objets OSM apparaître parmi les résultats, vous pouvez spécifier une liste des place_id que
   vous ne voulez pas voir apparaître, séparés par des virgules
 limit=<integer>
   Limiter le nombre de résultats retournés
 dedupe=[0|1]
   Non documenté.
 debug=[0|1]
   Non documenté.
 polygon_geojson=1
   Sorties des résultats géométriques au format geojson.
 polygon_kml=1
   Sorties des résultats géométriques au format kml.
 polygon_svg=1
   Sorties des résultats géométriques au format svg.
 polygon_text=1
   Sorties des résultats géométriques au format wkt.

Examples

 http://nominatim.openstreetmap.org/search?q=135+pilkington+avenue,+birmingham&format=xml&polygon=1&addressdetails=1
 http://nominatim.openstreetmap.org/search/135%20pilkington%20avenue,%20birmingham?format=xml&polygon=1&addressdetails=1
 http://nominatim.openstreetmap.org/search/gb/birmingham/pilkington%20avenue/135?format=xml&polygon=1&addressdetails=1
 <searchresults timestamp="Sat, 07 Nov 09 14:42:10 +0000" querystring="135 pilkington, avenue birmingham" polygon="true">
   <place 
     place_id="1620612" osm_type="node" osm_id="452010817" 
     boundingbox="52.548641204834,52.5488433837891,-1.81612110137939,-1.81592094898224" 
     polygonpoints="[['-1.81592098644987','52.5487429714954'],['-1.81592290792183','52.5487234624632'],...]" 
     lat="52.5487429714954" lon="-1.81602098644987" 
     display_name="135, Pilkington Avenue, Wylde Green, City of Birmingham, West Midlands (county), B72, United Kingdom" 
     class="place" type="house">
     <house>135</house>
     <road>Pilkington Avenue</road>
     <village>Wylde Green</village>
     <town>Sutton Coldfield</town>
     <city>City of Birmingham</city>
     <county>West Midlands (county)</county>
     <postcode>B72</postcode>
     <country>United Kingdom</country>
     <country_code>gb</country_code>
   </place>
 </searchresults>

Géocodage inversé / Recherche d'adresse

L'opération de géocodage inversé permet de générer une adresse à partir d'une longitude et d'une latitude. Le paramètre optionnel zoom permet de spécifier le niveau de détail de l'adresse qui pourrait correspondre au niveau de zoom d'openlayer.

Paramètres

http://nominatim.openstreetmap.org/reverse?<query>
 format=[xml|json]
   Format de sortie
 json_callback=<fonction de rappel>
   Encapsuler la sortie json dans un appel de fonction de rappel (JSONP) comme par exemple: <fonction de rappel>(<json>) 
 accept-language=<language du navigateur>
   Permet de surcharger le language par défaut du navigateur avec un langage pour les résultats de recherche.
   Il est possible d'utiliser une chaine accept-language au format standard rfc2616 ou une simple liste de codes de language séparés par des virgules.
 osm_type=[N|W|R]
 osm_id=<value>
   Un noeud / voie / relation dont l'adresse doit être retournée
   Merci d'utiliser ce mécanisme à la place des coordonnées à chaque fois que c'est possible 
 lat=<value>
 lon=<value>
   Les coordonnées du lieu pour lequel il faut générer une adresse
 zoom=[0-18]
   Niveau de zoom demandé où 0 est le niveau pays et 18 le niveau maison/immeuble
 addressdetails=[0|1]
   Inclure une décomposition de l'adresse en éléments
 email=<valid email address>
   Si vous effectuez un grand nombre de recherche, veuillez indiquer en supplément un courriel valide ou alternativement
   inclure votre adresse mail dans la chaîne User-Agent.
   Cette information restera confidentielle et ne sera utilisé que pour vous contacter en cas de problème. Voir la politique
   d'utilisation pour plus de détails.

Example

 http://nominatim.openstreetmap.org/reverse?format=xml&lat=52.5487429714954&lon=-1.81602098644987&zoom=18&addressdetails=1
 <reversegeocode timestamp="Fri, 06 Nov 09 16:33:54 +0000" querystring="...">
   <result place_id="1620612" osm_type="node" osm_id="452010817">
     135, Pilkington Avenue, Wylde Green, City of Birmingham, West Midlands (county), B72, United Kingdom
   </result>
   <addressparts>
     <house>135</house>
     <road>Pilkington Avenue</road>
     <village>Wylde Green</village>
     <town>Sutton Coldfield</town>
     <city>City of Birmingham</city>
     <county>West Midlands (county)</county>
     <postcode>B72</postcode>
     <country>United Kingdom</country>
     <country_code>gb</country_code>
   </addressparts>   
 </reversegeocode>

Details / Index géographique

Actuellement la page de détails (details.php) créé une augmentation conséquente de la charge sur le serveur et il n'est concevable de s'en servir que comme aide au débugage, et ainsi aucune API xml n'est actuellement proposée. Un usage inconsidéré de cette page pourra induire un bannissement des adresses IP sources.

Usage Policy

Concernant la politique d'utilisation de nominatim.openstreetmap.org, veuillez consulter Nominatim usage policy.

MapQuest propose aussi une version de cette API, avec une limite d'usage à 15 000 requêtes par mois (nécessitant une clé). Pour plus de détails, consultez [1]

Code Source

Nominatim repose sur l'outil d'import postgresql osm2pgsql utilisé en alternative à l'option de sortie gazetteer. Les sources de osm2pgsql peuvent être obtenues ici :

http://svn.openstreetmap.org/applications/utils/export/osm2pgsql

L'indexation et la recherche est effectué avec une combinaison de C, plpgsql et PHP. Les sources peuvent être trouvées ici:

https://github.com/openstreetmap/Nominatim

Les instructions complètes d'installation peuvent être trouvées dans Nominatim/Installation.

Voir les notes d'installation de postgres 8.4/postgis 1.5 [2]

Bugs / Error reporting

Nominatim est maintenu par Twain, merci de rapporter des bugs en utilisation l'outil de tracking de nominatim : Trac.