Sự khác biệt giữa ST_BuildArea và ST_Polygonize là gì?


9

Hai hàm ST_BuildAreaST_Polygonizecả hai lấy dòng và tạo đa giác.

Dường như ST_BuildAreagiả định rằng các vòng bên trong đại diện cho các lỗ và bỏ qua chúng khỏi kết quả, trong khi ST_Polygonizebao gồm chúng trong kết quả. Và các cơ chế sử dụng các hàm có một chút khác biệt: ST_Polygonizelà một tổng hợp, trong khi ST_BuildAreayêu cầu bạn tự bó các đầu vào bằng cách sử dụng ST_Collect.

Ngoài điều này, có sự khác biệt nào giữa hai chức năng không?


3
Có lẽ các slide thuyết trình này có thể giúp ích: http://2010.foss4g.org/presentations/3369.pdf
Joseph

Câu trả lời:


1

Đây không phải là một câu trả lời hoàn chỉnh, nhưng có thể là điểm khởi đầu cho ai đó đang tìm kiếm thêm chi tiết.

ST_Polygonize(ở dạng polygonize_garray) và ST_BuildAreađược xác định trong mã nguồn (gương) tại https://github.com/postgis/postgis/blob/svn-trunk/postgis/lwgeom_geos.c .

Cả hai cuối cùng đều gọi GEOSPolygonize, được định nghĩa trong GEOS , là cổng C / C ++ của Bộ cấu trúc liên kết Java .

Và từ các tài liệu -

ST_Polygonize - Tạo GeometryCollection chứa các đa giác có thể được hình thành từ các đường thẳng cấu thành của một tập hợp các hình học. https://postgis.net/docs/ST_Polygonize.html

ST_BuildArea - Tạo một hình học diện tích được hình thành bởi các đường thẳng cấu thành của hình học đã cho. Loại trả về có thể là Đa giác hoặc Đa thông tin, tùy thuộc vào đầu vào. Nếu các dòng đầu vào không tạo thành đa giác thì NULL được trả về. Các đầu vào có thể là LINE LINE, MULTILINESTRING, POLYGONS, MULTIPOLYGONS, và GeometryCollections. Hàm này sẽ giả sử tất cả các hình học bên trong đại diện cho các lỗ. http://postgis.net/docs/ST_BuildArea.html

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.