Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentes Révision précédente
Prochaine révision
Révision précédente
Dernière révision Les deux révisions suivantes
nominatim [Le 07/07/2015, 20:10]
zococo [Géocodage]
nominatim [Le 11/09/2022, 12:00]
moths-art Suppression des espaces en fin de ligne (détecté et corrigé via le bot wiki-corrector (https://forum.ubuntu-fr.org/viewtopic.php?id=2067892)
Ligne 1: Ligne 1:
-{{tag>​Trusty SIG OpenStreetMap ​géolocalisation ​BROUILLON}}+{{tag>​Trusty SIG OpenStreetMap BROUILLON}}
  
 ---- ----
Ligne 5: Ligne 5:
 ====== Nominatim ​ ====== ====== Nominatim ​ ======
  
-Nominatim (du Latin, 'par le nom') est un outil permettant de chercher des données géographiques par leur nom et leur adresse et de générer des adresses potentielles à partir de coordonnées géographiques (reverse geocoding). L'​outil peut être utilisé en ligne sur cette page : http://​nominatim.openstreetmap.org. ​+Nominatim (du Latin, 'par le nom') est un outil permettant de chercher des données géographiques par leur nom et leur adresse et de générer des adresses potentielles à partir de coordonnées géographiques (reverse geocoding). L'​outil peut être utilisé en ligne sur cette page : http://​nominatim.openstreetmap.org.
  
 Nominatim est aussi utilisé par l'​outil Search de la page d'​accueil d'​OpenStreetMap et améliore la qualité de la recherche proposée sur les sites MapQuest Open Initiative, PickPoint et OpenCage Geocoder. Nominatim est aussi utilisé par l'​outil Search de la page d'​accueil d'​OpenStreetMap et améliore la qualité de la recherche proposée sur les sites MapQuest Open Initiative, PickPoint et OpenCage Geocoder.
Ligne 16: Ligne 16:
 ==== Pourquoi installer Nominatim ==== ==== Pourquoi installer Nominatim ====
 Pour un usage occasionnel,​ installer Nominatim sur son ordinateur n'a aucun intérêt. En revanche, pour des usages fréquents et répétés l'​installation de Nominatim permet : Pour un usage occasionnel,​ installer Nominatim sur son ordinateur n'a aucun intérêt. En revanche, pour des usages fréquents et répétés l'​installation de Nominatim permet :
-  * de soulager les serveurs libres et gratuits d'​OpenStreetMap ​+  * de soulager les serveurs libres et gratuits d'​OpenStreetMap
   * de ne pas être dépendant d'​internet   * de ne pas être dépendant d'​internet
   * de disposer de ses propres bases de données   * de disposer de ses propres bases de données
Ligne 57: Ligne 57:
  
 <note tip> <note tip>
-Les alertes à propos de l'​absence des librairies lua peuvent être ignorées, Nominatim n'​utilise pas l'​extension lua de osm2PGSql. ​+Les alertes à propos de l'​absence des librairies lua peuvent être ignorées, Nominatim n'​utilise pas l'​extension lua de osm2PGSql.
 </​note>​ </​note>​
  
Ligne 109: Ligne 109:
  wget -r ftp://​ftp2.census.gov/​geo/​tiger/​TIGER2014/​EDGES/​  wget -r ftp://​ftp2.census.gov/​geo/​tiger/​TIGER2014/​EDGES/​
 </​code> ​ </​code> ​
-**Conversion des données en requêtes SQL (sauvegardées dans data/​tiger2011) :** +**Conversion des données en requêtes SQL (sauvegardées dans data/​tiger2011) :**
 <​code>​ <​code>​
 ./​utils/​imports.php --parse-tiger-2011 <​répetoire des fichiers tiger edge> ./​utils/​imports.php --parse-tiger-2011 <​répetoire des fichiers tiger edge>
Ligne 121: Ligne 121:
 </​code>​ </​code>​
 <note attention>​ <note attention>​
-L'​importation peut prendre beaucoup de temps, notamment si vous importez l'​ensemble des données du pays.+L'​importation peut prendre beaucoup de temps, notamment si vous importez l'​ensemble des données du pays. Une semaine entière sur un petit Asus 1015E doté d'un processeur Intel® Celeron® Dual-Core 847 à 1,1GHz et d'un disque ATA Seagate de 320 GO à 5400 tours.
 </​note>​ </​note>​
  
Ligne 143: Ligne 143:
  
 <note warning> <note warning>
-En aucun cas l'​importation ne doit être réalisée sous le compte root ou www-data+En aucun cas l'​importation ne doit être réalisée sous le compte root ouwww-data
 </​note>​ </​note>​
 == Paramètres PostgreSQL == == Paramètres PostgreSQL ==
Ligne 157: Ligne 157:
 sudo pg_ctlcluster 9.3 main start sudo pg_ctlcluster 9.3 main start
 </​code>​ </​code>​
-ou bien+oubien
 <​code>​ <​code>​
 sudo service postgres 9.3 main start sudo service postgres 9.3 main start
Ligne 176: Ligne 176:
 === Importation et indexation des données OSM === === Importation et indexation des données OSM ===
  
-L'​importation préalable du fichier mondial ("​Planet file"​) ​ou d'une extraction (par exemple du site Geofabrik) est nécessaire. Utiliser le format PBF.+L'​importation préalable du fichier mondial ("​Planet file"​) ​oud'une extraction (par exemple du site Geofabrik) est nécessaire. Utiliser le format PBF.
  
 <note tip> <note tip>
Ligne 193: Ligne 193:
  
 Il se peut que vous rencontriez des problèmes liés au paramétrage de postgresql lors de l'​importation des données, fichiers manquants, opérations impossibles,​ etc. Il se peut que vous rencontriez des problèmes liés au paramétrage de postgresql lors de l'​importation des données, fichiers manquants, opérations impossibles,​ etc.
-La procédure ci-dessous a permis de solutionner le problème pour une installation particulière. À tenter sans garantie et en réfléchissant un peu. +La procédure ci-dessous a permis de solutionner le problème pour une installation particulière. À tenter sans garantie et en réfléchissant un peu.
 NB : postgresql exige que la version soit précisée, dans l'​exemple ci-dessous c'est la 9.3. À adapter selon votre configuration. NB : postgresql exige que la version soit précisée, dans l'​exemple ci-dessous c'est la 9.3. À adapter selon votre configuration.
   * Arrêt postgresql   * Arrêt postgresql
Ligne 213: Ligne 213:
 /​var/​lib/​postgresql /​var/​lib/​postgresql
 /​etc/​postgresql /​etc/​postgresql
-/​var/​log/​postgresql ​+/​var/​log/​postgresql
 /​usr/​share/​postgresql /​usr/​share/​postgresql
 et votre répertoire de données et votre répertoire de données
 <​code>​ <​code>​
-sudo rm -R /​var/​lib/​postgresql /​etc/​postgresql/​ /​var/​log/​postgresql /​usr/​share/​postgresql+sudo rm -R /​var/​lib/​postgresql /​etc/​postgresql/​ /​var/​log/​postgresql/​usr/​share/​postgresql
 sudo rm -R <votre répertoire>​ sudo rm -R <votre répertoire>​
 </​code>​ </​code>​
Ligne 248: Ligne 248:
 <​code>​ <​code>​
 cd <votre répertoire d'​installation>​ cd <votre répertoire d'​installation>​
 +</​code>​
   * Traitement données   * Traitement données
 <​code>​ <​code>​
Ligne 348: Ligne 349:
 ===== Utilisation de Nominatim ===== ===== Utilisation de Nominatim =====
  
-La recherche dans Nominatim fonctionne à partir d'​objets nommés ​ou numérotés ​à partir des données Openstreetmap (OSM) ainsi que d'une liste d'​objets "non nommés" ​commme ​des commerces, des hotels, des bâtiments publics, etc.+La recherche dans Nominatim fonctionne à partir d'​objets nommés ​ounumérotés ​à partir des données Openstreetmap (OSM) ainsi que d'une liste d'​objets "non nommés" ​comme des commerces, des hôtels, des bâtiments publics, etc.
  
 +Le serveur Nominatim peut fonctionner de manière interactive dans le navigateur : saisir l'​adresse localhost/​nominatim/​search.php affiche une carte du monde avec une zone à l'​intérieur de laquelle il suffit de saisir une adresse physique pour la géocoder.
 +
 +Toutefois Nominatim peut faire nettement plus, c'est ce que nous allons voir ci-dessous.
 ==== Géocodage ==== ==== Géocodage ====
 Le géocodage est l'​action consistant à transformer une adresse en coordonnées géographiques. Le géocodage est l'​action consistant à transformer une adresse en coordonnées géographiques.
Ligne 359: Ligne 363:
  
 Les requêtes sont passées dans le navigateur sous la forme suivante : Les requêtes sont passées dans le navigateur sous la forme suivante :
-"​http://​nominatim.openstreetmap.org/​search?<​paramètres>"​ ou  +<​code>​ 
 +"​http://​nominatim.openstreetmap.org/​search?<​paramètres>"​ 
 +</​code>​ 
 +ou 
 +<​code>​
  "​http://​nominatim.openstreetmap.org/​search/<​requête>?<​paramètres>"​  "​http://​nominatim.openstreetmap.org/​search/<​requête>?<​paramètres>"​
 +</​code>​
 ===Adresses=== ===Adresses===
 Rue de la République,​ Marseille Rue de la République,​ Marseille
Ligne 369: Ligne 376:
 sont deux formats valides sont deux formats valides
 ==Numéros== ==Numéros==
-La saisie des numéros améliore la précision de la recherche. Dans ce cas le format de gauche à droite est nécessaire+La saisie des numéros améliore la précision de la recherche. Dans ce cas le format de gauche à droite est nécessaire ​:
 51, rue de la République,​ Marseille 51, rue de la République,​ Marseille
 ==Virgule== ==Virgule==
-La présence de virgules entre les termes de la recherche n'est pas obligatoire mais améliore l'​effiacité ​de la requête.+La présence de virgules entre les termes de la recherche n'est pas obligatoire mais améliore l’efficacité ​de la requête.
  
 ===Mots clés spécifiques=== ===Mots clés spécifiques===
Ligne 397: Ligne 404:
 **accept-language=<​langue du navigateur au format chaîne de caractère>​** **accept-language=<​langue du navigateur au format chaîne de caractère>​**
  
-Force la langue de résultat indépendamment des valeur figurant dans l'​en-tête (header) http. Accepte toutes les langues au format rfc2616 ​ou des codes de langue séparés par des virgules.+Force la langue de résultat indépendamment des valeur figurant dans l'​en-tête (header) http. Accepte toutes les langues au format rfc2616 ​oudes codes de langue séparés par des virgules.
  
 ===Écriture de la requête=== ===Écriture de la requête===
Ligne 415: Ligne 422:
  
 ==countrycodes=<​ code pays>​[,<​ code pays>​][,<​ code pays>​]...== ==countrycodes=<​ code pays>​[,<​ code pays>​][,<​ code pays>​]...==
-Restreint la recherche à un pays (ou une liste de pays). Code au format ISO 3166-1alpha2 (fr pour France)+Restreint la recherche à un pays (ouune liste de pays). Code au format ISO 3166-1alpha2 (fr pour France)
  
-==viewbox=<​gauche>,<​haut>,<​droite>,<​bas>  ​ou viewboxlbrt=<​gauche>,<​bas>,<​droite>,<​haut>​==+==viewbox=<​gauche>,<​haut>,<​droite>,<​bas>  ​ouviewboxlbrt=<​gauche>,<​bas>,<​droite>,<​haut>​==
 zone préferentielle de recherche des résultats zone préferentielle de recherche des résultats
  
Ligne 431: Ligne 438:
  
 ==email=<​addresse électronique de contact>​== ==email=<​addresse électronique de contact>​==
-Peu utile pour un serveur autohébergé. Concerne les usages en ligne en masse +Peu utile pour un serveur autohébergé. Concerne les usages en ligne en masse
  
 ==exclude_place_ids=<​identifiant de lieu,​[identifiant de lieu],​[identifiant de lieu]>== ==exclude_place_ids=<​identifiant de lieu,​[identifiant de lieu],​[identifiant de lieu]>==
Ligne 484: Ligne 491:
  
 {{ :​detail_20_la_canebiere.png ?600 |}} {{ :​detail_20_la_canebiere.png ?600 |}}
 +
 +[[https://​nominatim.openstreetmap.org/​search.php?​q=20+la+Canebi%C3%A8re+Marseille&​format=json]]
 +
 +[[http://​localhost/​nominatim/​search.php?​q=20+la+Canebi%C3%A8re+Marseille&​format=json]]
 +
 +{{ ::​capture_du_2015-07-08_20_30_03.png?​600 |}}
 +
 +Et une petite dernière pour la route :
 +
 +[[https://​nominatim.openstreetmap.org/​search.php?​q=20+la+Canebi%C3%A8re+Marseille&​format=xml]]
 +
 +[[http://​localhost/​nominatim/​search.php?​q=20+la+Canebi%C3%A8re+Marseille&​format=xml]]
 +
 +{{ ::​capture_du_2015-07-08_20_29_26.png?​600 |}}
 ====Géocodage inversé==== ====Géocodage inversé====
  
 Le géocodage inversé est l'​action qui consiste à déduire une adresse à partir d'une position en latitude et longitude. Le paramètre optopnnel de zoom précise le niveau de détail requis. Le géocodage inversé est l'​action qui consiste à déduire une adresse à partir d'une position en latitude et longitude. Le paramètre optopnnel de zoom précise le niveau de détail requis.
  
- format=[xml|json]+=== format=[xml|json] ​===
 Format de la sortie Format de la sortie
  
-xml+==xml==
 Format XML (format structuré) Format XML (format structuré)
-json+==json==
 Format json Format json
  
-json_callback=<​chaîne>​ +===json_callback=<​chaîne>​=== 
-Empaquete ​le résultat de la requête dans un appel de fonction json, c'est à dire une chaîne commençant par "​json>"​ +Empaquette ​le résultat de la requête dans un appel de fonction json, c'est à dire une chaîne commençant par "​json>"​
- +
- ​accept-language=<​langue du navigateur au format châine de carctère>​ +
-Force la langue de résultat indépendamment des valeur figurant dans l'​en-tête (header) http. Accepte toutes les langues au format rfc2616 ou des codes de langue séparés par des virgules.+
  
- ​osm_type=[N|W|R] +===accept-language=<langue du navigateur au format chaîne de caractère>=== 
- ​osm_id=<valeur>+Force la langue de résultat indépendamment des valeur figurant dans l'​en-tête (header) http. Accepte toutes les langues au format rfc2616 oudes codes de langue séparés par des virgules.
  
-objet OSM (noeud/​route/​relation) à géocoder. Lorsque cela est possible, l'​usage des identifiants d'​objets OSM est préférable. ​+ ​===osm_type=[N|W|R] osm_id=<​valeur>​=== 
 +objet OSM (noeud/​route/​relation) à géocoder. Lorsque cela est possible, l'​usage des identifiants d'​objets OSM est préférable.
  
- lat=<​valeur>​ +=== lat=<​valeur> ​ lon=<​valeur>​===
- lon=<​valeur>​+
 Coordonnées du point à géocoder. Coordonnées du point à géocoder.
  
- zoom=[0-18] +=== zoom=[0-18]=== 
-NIveau ​de zoom, 1 correspond à un pays, 18 à un immeuble.+Niveau ​de zoom, 1 correspond à un pays, 18 à un immeuble.
  
- addressdetails=[0|1]+=== addressdetails=[0|1]===
 Séparation de l'​adresse en différents éléments Séparation de l'​adresse en différents éléments
  
-email=<addresse ​électronique de contact>​ +===email=<adresse ​électronique de contact>=== 
-Peu utile pour un serveur ​autohébergé. Concerne les usages en ligne en masse.+Peu utile pour un serveur ​auto hébergé. Concerne les usages en ligne en masse.
  
-Hierarchie +===Hierarchie=== 
-Niveau administratif ​ entité XML +  ​* ​Niveau administratif ​ entité XML 
-2 <​pays>​ +  ​* ​2 <​pays>​ 
-4 <​état>​ (en France, région ?) +  ​* ​4 <​état>​ (en France, région ?) 
-5 <​district d'​état>​ (en France, département ?) +  ​* ​5 <​district d'​état>​ (en France, département ?) 
-6  +  ​* ​6  
-7 <​comté>​ (en France, canton ?) +  ​* ​7 <​comté>​ (en France, canton ?) 
-8 <​commune>​ +  ​* ​8 <​commune>​ 
-9 <​arrondissement>​ +  ​* ​9 <​arrondissement>​ 
-10 <​quartier>​+  ​* ​10 <​quartier>​
  
-====Consultation d'​adresses==== +=== Exemples ​===
-Affiche les adresses d'un ou plusiseurs objets OSM : noeuds, routes, relations.+
  
-Format+== Latitude Nord 43,29537 Longitude Est 5,37444== 
 +[[http://​localhost/​nominatim/​reverse?​format=xml&​lat=43.29537&​lon=5.37444&​zoom=18&​addressdetails=1]]
  
- http://​nominatim.openstreetmap.org/lookup?<​query>​+[[http://localhost/nominatim/reverse?format=xml&​lat=43.29537&​lon=5.37444&​zoom=18&​addressdetails=1]]
  
-Paramètres +Surprise ! C'est : 1, La Canebière, Marseille 1er Arrondissement,​ Marseille, Bouches-du-Rhône,​ Provence-Alpes-Côte d'​Azur,​ 13001, France 
- ​format=[xml|json]+ 
 +==  Latitude Nord 44,90008 Longitude Est  6,4461== 
 + 
 +[[https://​nominatim.openstreetmap.org/​reverse?​format=xml&​lat=44.88989&​lon=6.63344&​zoom=18&​addressdetails=1]] 
 + 
 +[[http://​localhost/​nominatim/​reverse?​format=xml&​lat=44.88989&​lon=6.63344&​zoom=18&​addressdetails=1]] 
 + 
 +Et la capture d'​écran : 
 + 
 +{{ ::​capture_du_2015-07-08_20_53_01.png?​600 |}} 
 + 
 +Gare SNCF de Briançon. 
 + 
 +====Consultation d'​adresses==== 
 +Affiche les adresses d'un ouplusiseurs objets OSM : noeuds, routes, relations. 
 + 
 +=== Format === 
 +<​code>​ http://​nominatim.openstreetmap.org/​lookup?<​query>​ 
 +</​code>​ 
 +=== Paramètres ​=== 
 +== format=[xml|json] ​==
 Format de la sortie Format de la sortie
  
-xml+**xml**
 Format XML (format structuré) Format XML (format structuré)
-json+**json**
 Format json Format json
  
-json_callback=<​chaîne>​ +==json_callback=<​chaîne>​== 
-Empaquete ​le résultat de la requête dans un appel de fonction json, c'est à dire une chaîne commençant par "​json>"​ +Empaquette ​le résultat de la requête dans un appel de fonction json, c'est à dire une chaîne commençant par "​json>"​
- +
- ​accept-language=<​langue du navigateur au format châine de carctère>​ +
-Force la langue de résultat indépendamment des valeur figurant dans l'​en-tête (header) http. Accepte toutes les langues au format rfc2616 ou des codes de langue séparés par des virgules.+
  
-osm_ids=[N|W|R]<valeur>,​…,​[N|W|R]<​valeur>+==accept-language=<langue du navigateur au format chaîne de carctères>== 
 +Force la langue de résultat indépendamment des valeur ​figurant dans l'​en-tête (header) http. Accepte toutes les langues au format rfc2616 oudes codes de langue séparés par des virgules.
  
-liste de 1 à 50 objets dont l'​adresse doit être retournée. ​+==osm_ids=[N|W|R]<​valeur>,​…,​[N|W|R]<​valeur>​== 
 +liste de 1 à 50 objets dont l'​adresse doit être retournée.
  
- addressdetails=[0|1]+==addressdetails=[0|1]==
 Séparation de l'​adresse en différents éléments Séparation de l'​adresse en différents éléments
  
-email=<​addresse électronique de contact>+==email=<​addresse électronique de contact>==
 Peu utile pour un serveur autohébergé. Concerne les usages en ligne en masse. Peu utile pour un serveur autohébergé. Concerne les usages en ligne en masse.
 +
 +=== Exemples ===
 +[[https://​nominatim.openstreetmap.org/​lookup?​osm_ids=R76091,​W186948207,​N2113091575]]
 +
 ===== Mise à jours base de données Nominatim avec Osmosis ===== ===== Mise à jours base de données Nominatim avec Osmosis =====
  
Ligne 571: Ligne 612:
 La version d'​Osmosis disponible dans les paquets de la plupart des distributions est trop ancienne pour repérer correctement les différences pour la mise à jour. Il est donc conseillé de télécharger le binaire de la dernière version stable sur le site [[https://​wiki.openstreetmap.org/​wiki/​FR:​Osmosis|Osmosis]] puis de le décompresser. Copier alors le binaire dans </​usr/​local/​bin>​ : La version d'​Osmosis disponible dans les paquets de la plupart des distributions est trop ancienne pour repérer correctement les différences pour la mise à jour. Il est donc conseillé de télécharger le binaire de la dernière version stable sur le site [[https://​wiki.openstreetmap.org/​wiki/​FR:​Osmosis|Osmosis]] puis de le décompresser. Copier alors le binaire dans </​usr/​local/​bin>​ :
 <​code>​ <​code>​
-mv osmosis /​usr/​local/​bin/​osmosis+wget http://​bretth.dev.openstreetmap.org/​osmosis-build/​osmosis-latest.zip 
 +unzip osmosis-latest.zip bin/​osmosis 
 +mv bin/osmosis /​usr/​local/​bin/​osmosis 
 +rmdir bin 
 +rm osmosis-latest.zip
 </​code>​ </​code>​
  
Ligne 582: Ligne 627:
 ==== Configuration des mises à jour ==== ==== Configuration des mises à jour ====
  
-Par défaut, Nominatim est configuré pour réaliser des mises à jour des différences globales à la minute (?? global minutely diffs - mon anglais technique est insuffisant pour ue traduction optimale). ​+Par défaut, Nominatim est configuré pour réaliser des mises à jour des différences globales à la minute (?? global minutely diffs - mon anglais technique est insuffisant pour une traduction optimale).
  
 ===Modification des sources de mise à jour=== ===Modification des sources de mise à jour===
Ligne 594: Ligne 639:
 </​code>​ </​code>​
  
 +Et pour la France :
 +<​code>​
 +@define('​CONST_Replication_Url',​ '​http://​download.geofabrik.de/​europe/​france-updates'​);​
 +</​code>​
 ===Remplacement du paramétrage antérieur=== ===Remplacement du paramétrage antérieur===
  
-Il est nécessaire de préalablement effacer le fichier <​configuration.txt>​ puis d'​executer ​la commande setup.php :+Il est nécessaire de préalablement effacer le fichier <​configuration.txt>​ puis d’exécuter ​la commande setup.php :
 <​code>​ <​code>​
 rm configuration.txt rm configuration.txt
Ligne 665: Ligne 714:
  
 ===== Voir aussi ===== ===== Voir aussi =====
-  + 
-  * **(en)** [[https://​wiki.openstreetmap.org/​wiki/​Nominatim/​Installation|Installation Nominatim]] ​par OpenStreetMap+  * **(en)** [[https://​wiki.openstreetmap.org/​wiki/​Nominatim?​setlang=fr|Présentation]] sur OpenStreetMap 
 +  * **(en)** [[https://​nominatim.org/​release-docs/​latest/​admin/​Installation/|Installation Nominatim]] ​sur OpenStreetMap 
 +  * [[osrm|OSRM]]
 ---- ----
 //​Contributeurs principaux : [[zococo|Zococo]].//​ //​Contributeurs principaux : [[zococo|Zococo]].//​
    
 //Basé sur [[https://​wiki.openstreetmap.org/​wiki/​Nominatim/​Installation|Installation Nominatim]] par OpenStreetMap.//​ //Basé sur [[https://​wiki.openstreetmap.org/​wiki/​Nominatim/​Installation|Installation Nominatim]] par OpenStreetMap.//​
  • nominatim.txt
  • Dernière modification: Le 25/09/2022, 15:25
  • par Amiralgaby