Saya memiliki banyak poligon yang tumpang tindih dan saya mencoba mempartisi ruang untuk menghindari yang tumpang tindih. Saya pikir masalah saya cukup sederhana. Menggunakan beberapa produk ESRI dan http://arcscripts.esri.com/details.asp?dbid=16700 rekan kerja saya menghitungnya dalam 48-an.
Saya mencoba melakukannya dengan postgis menggunakan http://s3.opengeo.org/postgis-power.pdf#page=24 (menebak rinciannya, menggunakan http://trac.osgeo.org/postgis/wiki/UsersWikiSimplifyPreserveTopology sebagai inspirasi) tetapi sangat lambat sehingga saya tidak dapat melakukannya dengan lebih dari 10 polys (saya punya 800 dari mereka untuk dibagi). Bagian lambat adalah ST_Union, saya mencoba berbagai hal, tetapi tidak ada yang berhasil, di sini adalah keadaan saat ini:
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
ini telah menghitung selama 26 menit (linemerge () sebenarnya tidak). Polys adalah MultiPolygons jika st_dump mengganggu Anda.
Apakah Anda punya tip? St_union () dari garis adalah bagian yang sangat lambat.
Terima kasih,
Nico.
NB: berikut adalah beberapa bilangan: 852 multipoligon, yang mengarah ke 14880 poligon, mengarah ke 21467 linestrings dengan total 315513 simpul.
sumber
Jawaban:
Jawaban ini mungkin tidak membantu @nraynaud secara langsung, tetapi mudah-mudahan akan menjelaskan masalah ini.
Ada masalah serupa di spatiaLite <4.0 karena masalah dengan GEOS. Lihat tautan ini untuk diskusi tentang masalah ini.
Solusinya adalah mengganti fungsi ST_Union () dengan ST_UnaryUnion (ST_Collect ()). Sayangnya, ST_UnaryUnion tidak tersedia sampai postGIS 2.0 (sejauh yang saya tahu.)
sumber
Versi PostGIS mana yang Anda gunakan? Menyatukan jauh lebih lambat jika Anda menggunakan PostGIS <1.4 atau GEOS <3.2. Serikat yang jauh lebih cepat diperkenalkan pada 1.4, tetapi juga membutuhkan GEOS 3.2+. Jadi pertama-tama jika Anda menggunakan lebih rendah dari 1,4, saya akan meningkatkan setidaknya 1,5.
Untuk memeriksa.
Juga niat Anda untuk menjaga tepi asli poligon. Jika Anda hanya ingin membubarkan daerah yang tumpang tindih,
Akan melakukan triknya.
sumber