[OSM-dev-fr] Probléme Postgis pgsnapshot
yvecai
yvecai at gmail.com
Jeu 20 Fév 20:35:54 UTC 2014
Salut,
Il y a quelque chose qui m'échappe. J'ai un peu modifié le schéma
pgsnapshot livré avec Osmosis pour gérer des géométries au niveau des
relations (ST_linemerge pour les type=routes, st_convexhull pour les
type=sites).
Maintenant, j'ai une fonction pour mettre à jour ces géométries, du genre:
UPDATE relations
SET geom=(
SELECT st_convexHull(st_collect(the_geom))
FROM
(
SELECT relations.geom as the_geom from relations
WHERE relations.id in (
SELECT member_id FROM relation_members
WHERE relation_id = relations.id
)
UNION
SELECT ways.linestring as the_geom from ways
WHERE ways.id in (
SELECT member_id FROM relation_members
WHERE relation_id = relations.id
)
) as foo
)
WHERE tags->'site' = 'piste'; --all relations at import
Qui permet de faire un polygone sur l'emprise d'une relation 'site'
prenant en compte les géométrie de ses membres (ways + relations routes).
Après avoir fait tourné,voici mon polygone:
select st_area(geom)*1000 from relations where id=2764548;
--~ ?column?
--~ -------------------
--~ 0.351100713594952
--~ (1 row)
Mais c'est la surface des ways, pas celle des ways + des routes:
Surface des ways :
SELECT ST_Area(ST_ConvexHull(st_collect(ways.linestring)))*1000 FROM
ways
WHERE ways.id in (
SELECT member_id FROM relation_members WHERE relation_id =
2764548
);
--~ ?column?
--~ -------------------
--~ 0.351100713594952
--~ (1 row)
Surfaces des way + des routes :
SELECT st_area(st_convexHull(st_collect(the_geom)))*1000
FROM
(
SELECT ways.linestring as the_geom from ways
WHERE ways.id in (
SELECT member_id FROM relation_members WHERE
relation_id = 2764548
)
UNION
SELECT relations.geom as the_geom from relations
WHERE relations.id in (
SELECT member_id FROM relation_members WHERE
relation_id = 2764548
)
) as foo;
--~ ?column?
--~ ------------------
--~ 4.32829936752993
Je ne comprend pas pourquoi mon UPDATE ne prend pas en compte la
géométrie des relations ????
-------------- section suivante --------------
Une pièce jointe HTML a été nettoyée...
URL: <http://lists.openstreetmap.org/pipermail/dev-fr/attachments/20140220/eb04663b/attachment.html>
Plus d'informations sur la liste de diffusion dev-fr