J'ai un tas de polygones qui se chevauchent et j'essaie de partitionner l'espace pour éviter d'avoir des polygones qui se chevauchent. Je pense que mon problème est assez simple. En utilisant un produit ESRI et http://arcscripts.esri.com/details.asp?dbid=16700, mon collègue l'a calculé en 48 secondes.
J'essaie de le faire avec postgis en utilisant http://s3.opengeo.org/postgis-power.pdf#page=24 (deviner les détails, en utilisant http://trac.osgeo.org/postgis/wiki/UsersWikiSimplifyPreserveTopology comme inspiration) mais c'est tellement lent que je ne peux pas le faire avec plus de 10 polys (j'en ai 800 à séparer). La partie lente est la ST_Union, j'ai essayé différentes choses, mais aucune n'a réussi, voici l'état actuel des choses:
select geom from
(select st_linemerge(st_union(geom)) as geom from
(select st_exteriorring((st_dumprings((st_dump(t.geom)).geom)).geom) as geom from
(SELECT geometry AS geom, id
FROM tt
WHERE campaign_id = 204
ORDER BY id limit 200) t) t2) t3
cela fait des calculs depuis 26 min (le linemerge () ne l'est en fait pas). Les polys sont des MultiPolygons au cas où le st_dump vous dérangerait.
Avez-vous une astuce? Le st_union () du dessin au trait est la partie très lente.
Merci,
Nico.
PS: voici quelques chiffres: 852 multipolygones, menant à 14880 polygones, menant à 21467 lignes de lignes totalisant 315513 sommets.