Différences
Ci-dessous, les différences entre deux révisions de la page.
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.// |