Ich habe eine Reihe überlappender Polygone und versuche, den Raum zu partitionieren, um überlappende Polygone zu vermeiden. Ich denke, mein Problem ist ziemlich einfach. Mit einem ESRI-Produkt und http://arcscripts.esri.com/details.asp?dbid=16700 berechnete mein Mitarbeiter es in 48s.
Ich versuche es mit Postgis unter Verwendung von http://s3.opengeo.org/postgis-power.pdf#page=24 (Erraten der Details unter Verwendung von http://trac.osgeo.org/postgis/wiki/UsersWikiSimplifyPreserveTopology) als Inspiration), aber es ist so langsam, dass ich es nicht mit mehr als 10 Polys machen kann (ich habe 800 davon zu teilen). Der langsame Teil ist die ST_Union, ich habe verschiedene Dinge ausprobiert, aber keine war erfolgreich, hier ist der aktuelle Stand der Dinge:
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
Dies wurde für 26 Minuten berechnet (das linemerge () ist eigentlich nicht). Die Polys sind MultiPolygons, falls der st_dump Sie stört.
Hast du einen Tipp? Die st_union () der Linienführung ist der sehr langsame Teil.
Vielen Dank,
Nico.
PS: Hier sind einige Zahlen: 852 Multipolygone, die zu 14880 Polygonen führen, was zu 21467 Linestrings mit insgesamt 315513 Eckpunkten führt.