У мене є купа полігонів, що перекриваються, і я намагаюся розділити простір, щоб уникнути перекриття. Я думаю, що моя проблема досить проста. Використовуючи якийсь продукт ESRI та http://arcscripts.esri.com/details.asp?dbid=16700, мій колега обчислив його за 48 років.
Я намагаюся зробити це з postgis, використовуючи http://s3.opengeo.org/postgis-power.pdf#page=24 (відгадуючи деталі, використовуючи http://trac.osgeo.org/postgis/wiki/UsersWikiSimplifyPreserveTopology як натхнення), але це так повільно, що я не можу зробити це з більш ніж 10 полісами (у мене 800 з них, щоб розділитись). Повільна частина - це ST_Union, я пробував різні речі, але жодна, де це було успішно, ось поточний стан справ:
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
це обчислюється протягом 26 хв (лінемерге () насправді немає). Поліс - це багатополігони на випадок, коли st_dump вас клопоче.
У вас є якась порада? St_union () лінійної роботи - це дуже повільна частина.
Дякую,
Ніко.
PS: Ось декілька чисел: 852 багатокутників, що ведуть до 14880 багатокутників, що веде до 21467 рядків на загальну суму 315513 вершин.