ความแตกต่างระหว่าง ST_BuildArea และ ST_Polygonize คืออะไร


9

ทั้งสองฟังก์ชั่นST_BuildAreaและST_Polygonizeทั้งคู่รับสายและสร้างรูปหลายเหลี่ยม

ดูเหมือนว่าST_BuildAreaสันนิษฐานว่าวงแหวนด้านในเป็นตัวแทนของหลุมและตัดออกจากผลลัพธ์ขณะที่ST_Polygonizeรวมไว้ในผลลัพธ์ และกลไกของการใช้ฟังก์ชั่นที่มีความแตกต่างกันบิต: ST_Polygonizeเป็นรวมในขณะที่คุณต้องกำขึ้นปัจจัยการผลิตด้วยตัวเองโดยใช้ST_BuildAreaST_Collect

นอกเหนือจากนี้มีความแตกต่างระหว่างสองฟังก์ชั่นหรือไม่


3
บางทีสไลด์การนำเสนอเหล่านี้อาจช่วยได้: http://2010.foss4g.org/presentations/3369.pdf
โจเซฟ

คำตอบ:


1

นี่ไม่ใช่คำตอบที่สมบูรณ์ แต่อาจเป็นจุดเริ่มต้นสำหรับใครบางคนที่กำลังมองหารายละเอียดเพิ่มเติม

ST_Polygonize(ในรูปแบบของpolygonize_garray) และST_BuildAreaมีการกำหนดในรหัสที่มา (กระจก) ที่https://github.com/postgis/postgis/blob/svn-trunk/postgis/lwgeom_geos.c

พวกเขาทั้งสองในที่สุดก็เรียกGEOSPolygonizeซึ่งถูกกำหนดไว้ในGEOSซึ่งเป็นพอร์ต C / C ++ ของJava โทโพโลยีสวีท

และจากเอกสาร -

ST_Polygonize - สร้าง GeometryCollection ที่มีรูปหลายเหลี่ยมที่เป็นไปได้ที่เกิดขึ้นจาก linework องค์ประกอบของชุดของรูปทรงเรขาคณิต https://postgis.net/docs/ST_Polygonize.html

ST_BuildArea - สร้างเรขาคณิต areal ที่เกิดขึ้นจาก linework องค์ประกอบของรูปทรงเรขาคณิตที่กำหนด ชนิดส่งคืนสามารถเป็นรูปหลายเหลี่ยมหรือหลายรูปแบบขึ้นอยู่กับอินพุต หาก lineworks ที่ป้อนเข้าไม่ได้เป็นรูปหลายเหลี่ยม NULL จะถูกส่งกลับ อินพุตสามารถเป็น LINESTRINGS, MULTILINESTRINGS, POLYGONS, MULTIPOLYGONS และ GeometryCollections ฟังก์ชั่นนี้จะถือว่ารูปทรงภายในทั้งหมดเป็นตัวแทนของหลุม http://postgis.net/docs/ST_BuildArea.html

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.