création base avec osm2pgsql

Extraire des données OSM, créer sa carte, uMap, utiliser sur un GPS ou un smartphone...
csv
Messages : 4
Inscription : jeu. avr. 04, 2013 4:42 pm

création base avec osm2pgsql

Message par csv » jeu. avr. 04, 2013 5:47 pm

Bonjour à toutes et tous !
Je découvre osm depuis quelques semaines, afin d'en utiliser les données dans 2 directions : édition ou web.
Pour le web, je suis un peu en stand-by pour le moment, mais j'ai lu avec intérêt quelques post bien intéressants.
Pour l'édition, j'ai un souci que vous saurez peut-être contribuer à résoudre !
Voici : j'importe dans postgresql/postgis via osm2pgsql des données osm ; je parviens à faire l'import, mais la table est difficilement utilisable : tous les tags deviennent des colonnes ! Y a-t-il moyen, à votre connaissance, de faire comme geofabrik pour ses shp, de créer une colonne "type" dans laquelle sont référencés les tags et une colonne de contenu des valeurs (ex : type = highway ; valeur = primary) ?
J'ai l'impression que hstore peut m'aider, mais sans certitude...

Merci beaucoup !

Cyril

sly
Messages : 489
Inscription : sam. févr. 07, 2009 6:33 pm
Localisation : Chambéry - savoie

Re: création base avec osm2pgsql

Message par sly » jeu. avr. 04, 2013 8:42 pm

csv a écrit : Y a-t-il moyen, à votre connaissance, de faire comme geofabrik pour ses shp, de créer une colonne "type" dans laquelle sont référencés les tags et une colonne de contenu des valeurs (ex : type = highway ; valeur = primary) ?
J'ai l'impression que hstore peut m'aider, mais sans certitude...
Ce n'est pas possible si tu veux garder la totalité des tag des objets, car comment ferais-tu pour stocker : highway=primary et maxspeed=90 ? pour une même route ?
Il faut donc soit :
- te demander pourquoi tu veux moins de colonne ? (est-il plus facile d'écrire une requête

Code : Tout sélectionner

select * from table where type='highway' and valeur='primary'
que

Code : Tout sélectionner

select * from table where highway='primary'
- soit si le problème de ces tables c'est justement que tu n'as pas tout, alors en effet, l'option -k de osm2pgsql (hstore) et/ou l'autre --full-hstore peuvent t'y aider, au détriment d'une baisse de performance probable si tu veux utiliser des indexes sur cette colonne hstore

J'ai tendance à utiliser un mixe entre les deux : des colonnes pour tous les tags sur lequels je vais devoir réaliser des condition de type where highway='bidule" et hstore pour le reste

csv
Messages : 4
Inscription : jeu. avr. 04, 2013 4:42 pm

Re: création base avec osm2pgsql

Message par csv » ven. avr. 05, 2013 12:21 pm

Merci beaucoup !
C'est vrai que ma ref de base, c'est celle de geofabrik, qui a sélectionné des tags pour ses shp ; du coup, je n'avais pas en tête qu'un même élément peut avoir plusieurs valeurs...
L'intérêt pour moi est d'exporter depuis qgis vers du shp en séparant les couches via l'outil approprié dans le menu vecteur, ce qui me fait gagner du temps par la suite, étant donné que 1 shp devient 1 calque (dans illustrator).
D'une manière ou d'une autre, c'est ça que je cherche à obtenir : 1 shp par TYPE de route, par TYPE de POI, etc.
Est-ce possible depuis les bases complètement "éclatées" créées par osm2pgsql, où le nombre de colonnes est énorme (= nombre de tags) ?

Merci encore

Cyril

sly
Messages : 489
Inscription : sam. févr. 07, 2009 6:33 pm
Localisation : Chambéry - savoie

Re: création base avec osm2pgsql

Message par sly » ven. avr. 05, 2013 2:14 pm

csv a écrit : Est-ce possible depuis les bases complètement "éclatées" créées par osm2pgsql, où le nombre de colonnes est énorme (= nombre de tags) ?
Avec l'outil pgsql2shp (sur le schéma osm2pgsql) tu pourra faire ça, car il prend comme option une requête, à toi d'écrire autant de requête que tu veux par shp que tu veux.

csv
Messages : 4
Inscription : jeu. avr. 04, 2013 4:42 pm

Re: création base avec osm2pgsql

Message par csv » ven. avr. 05, 2013 4:39 pm

Ah, OK, merci !
Il vaut mieux passer par hstore ou pas avant de l'utiliser ?

Répondre

Qui est en ligne ?

Utilisateurs parcourant ce forum : Aucun utilisateur inscrit et 1 invité