[OSM-dev-fr] [OSM-talk-fr] Osm2pgsql et boundary_segment [was: Re: Re : Réflexions sur la modélisation dans osm des niveaux administratifs en france]

sly (sylvain letuffe) liste at letuffe.org
Mar 24 Jan 22:21:38 GMT 2012


Le mardi 24 janvier 2012 22:40:33, Jocelyn Jaubert a écrit :
> Si j'ai bien compris le problème, il faudrait mettre dans la table
> planet_osm_polygon un "way" qui correspondrait à l'union des relations
> référencées par planet_osm_rels, et ceci de façon récursive.
> 
> Est-ce que ça répondrait au problème originel ?

Exact.
 
> On aurait du coup, pour la colonne "way" de l'osm_id -1362232 (France
> Métropolitaine), un ST_Union des "way" des relations 76910,
> 356747, ...). 

C'est ça, sauf qu'un st_union (de postgis) va juste agréger toutes les 
linestring pour faire un ensemble de type "multilinestring" qui ne sera pas un 
multipolygon

> Ça devrait être transparent pour le rendu, et tous les
> scripts qui ont besoin de connaître le "vrai" polygone représenté par
> cette relation.
> 
> Dit comme ça, ça a l'air assez simple de faire la requête SQL en
> question: faut juste qu'on me confirme que je pars sur la bonne piste :)

Selon moi, c'est bien ça. Mais je me suis creusé la tête pour le faire en SQL 
pour l'instant sans résultat. L'actuelle construction de multipolygon est 
implémentée en C il me semble.


> Par contre, je ne sais pas trop comment ça se comporterait sur les
> mises à jour: est-ce que osm2pgsql recalcule la colonne "way" des
> relations qui ont changé ou pas ?

Exact, c'est pour ça que c'est assez long d'ailleurs.
Si tu bouges un noeud appartenant à un way qui appartient à  10 relations, 
alors osm2pgsql te reconstruit toutes les géométries des 10 relations
c'est l'étape "pending relations"

> Et il manquerait l'équivalent de la table actions d'osmosis, qui
> indique tous les nodes/ways/relations modifiés lors de la dernière mise
> à jour.

il y a un champ dans les tables planet_osm_(rels/nodes/ways) qui s'appel 
pending=t/f
je ne sais pas si c'est ça que tu cherches

-- 
sly (sylvain letuffe)



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