Apa perbedaan antara ST_BuildArea dan ST_Polygonize?

9

Dua fungsi ST_BuildAreadan ST_Polygonizekeduanya mengambil garis dan menghasilkan poligon.

Tampaknya ST_BuildAreamengasumsikan bahwa cincin bagian dalam mewakili lubang dan menghilangkannya dari hasil, sementara ST_Polygonizememasukkannya ke dalam hasil. Dan mekanisme penggunaan fungsinya sedikit berbeda: ST_Polygonizeagregat, sementara ST_BuildAreamengharuskan Anda menggabungkan input yang Anda gunakan sendiri ST_Collect.

Di luar ini, apakah ada perbedaan antara kedua fungsi?

dbaston
sumber
3
Mungkin slide presentasi ini dapat membantu: http://2010.foss4g.org/presentations/3369.pdf
Joseph

Jawaban:

1

Ini bukan jawaban yang lengkap, tetapi bisa menjadi titik awal bagi seseorang yang mencari rincian lebih lanjut.

ST_Polygonize(dalam bentuk polygonize_garray) dan ST_BuildAreadidefinisikan dalam kode sumber (mirror) di https://github.com/postgis/postgis/blob/svn-trunk/postgis/lwgeom_geos.c .

Keduanya akhirnya memanggil GEOSPolygonize, yang didefinisikan dalam GEOS , yang merupakan port C / C ++ dari Java Topology Suite .

Dan dari dokumen -

ST_Polygonize - Membuat GeometryCollection berisi kemungkinan poligon yang terbentuk dari garis konstituen dari sekumpulan geometri. https://postgis.net/docs/ST_Polygonize.html

ST_BuildArea - Membuat geometri areal yang dibentuk oleh garis konstituen dari geometri yang diberikan. Jenis pengembalian dapat berupa Polygon atau MultiPolygon, tergantung pada input. Jika garis input tidak membentuk poligon, NULL akan dikembalikan. Input dapat berupa LINESTRING, MULTILINESTRING, POLYGONS, MULTIPOLYGONS, dan GeometryCollections. Fungsi ini akan menganggap semua geometri dalam mewakili lubang. http://postgis.net/docs/ST_BuildArea.html

Brian Burns
sumber