[OSM-dev-fr] Question bdd Nominatim

Vincent de Chateau-Thierry vdct at laposte.net
Mar 3 Avr 09:35:19 BST 2012


> De : "Charles DESNEUF" 
>
> Merci pour vos réponses.
> @Vincent :
> C'est lors de l'appel à Nominatim qu'il m'indique Rennes comme faisant
> parti des Pays de Loire.
> J'ai en effet squizzé les admin_level, le problème vient donc sans doute de
> là...
> Pour vérification du coup la syntaxe osmosis était la suivante(j'aurai donc
> à ajouter les AL)
> 
> osmosis --rb FILE --tag-filter accept-ways boundary=* border_type=* place=*
> --used-node outPipe.0=ways
> 
> --rb FILE --tf accept-nodes boundary=* border_type=* place=* outPipe.0=nodes
> 
> --merge inPipe.0=ways inPipe.1=nodes --wb filtered.pbf

Je ne connais pas les entrailles de Nominatim, mais là il manque quasi à coup sûr 
quelque chose, à savoir les fameux polygones, qui correspondent aux "relations" en
jargon OSM. Lors de ton étape osmosis, pour les ways, tu ne gardes que ceux avec
explicitement un tag boundary, ou border_type, ou place. Dans une relation comme la
Bretagne, tu as des ways avec aucun de ces tags, mais avec natural=coastline. En les
excluant de ton filtre, tu empêches une relation comme "Bretagne" ou
"Ille-et-Vilaine" d'être complète. Par suite, osm2pgsql ne peut pas construire le
polygone correspondant, et ton reverse geocoding est très approximé.

Les relations de type boundary=administrative sont celles qui permettent de découper le
territoire en mailles + ou - fines, et sur lesquelles normalement s'appuie un géocodage
inverse (du moins en France, et dans pas mal de pays) : le point "tombe" dans un polygone
issu d'une relation, et on en déduit, selon le niveau administratif du polygone, le
quartier, la ville, la région dans laquelle est inclut le point.

Voir cette page pour de la lecture sur le sujet :
http://wiki.openstreetmap.org/wiki/Tag:boundary%3Dadministrative
et le tableau par pays.

et plus généralement sur la notion de relation :
http://wiki.openstreetmap.org/wiki/FR:Relations

Pour ton étape osmosis, pour garantir que les relations sont complètes, tu peux essayer
une formulation qui ressemblerait à ça :
--tf accept-relations admin_level=* --used-way --used-node 

> Bretagne visible en couche polygones ? huh ? Avec Qgis par exemple ?
> Je n'ai pas fait d'affichage jusque là, hormis un rapide test, et dois
> admettre que je suis assez nouveau dans le monde OSM & GIS...

Oui, tout à fait, QGis est un bon outil pour constater ça. Mais comme vu plus haut, le
problème est vraisemblablement avant osm2pgsql.

> 
> J'ai aussi remarqué depuis d'autres soucis, Moscou aux US par exemple(Il me
> semble en avoir déjà entendu parlé qqpart de celui là).
> 

vincent

Une messagerie gratuite, garantie à vie et des services en plus, ça vous tente ?
Je crée ma boîte mail www.laposte.net



Plus d'informations sur la liste de diffusion dev-fr