Это не полный ответ, но может стать отправной точкой для тех, кто ищет более подробную информацию.
ST_Polygonize
(в форме polygonize_garray
) и ST_BuildArea
определены в исходном коде (зеркало) по адресу https://github.com/postgis/postgis/blob/svn-trunk/postgis/lwgeom_geos.c .
Оба они в конечном счете вызывают GEOSPolygonize
, что определено в GEOS , который является портом C / C ++ Java Topology Suite .
И из документов -
ST_Polygonize - создает коллекцию GeometryCollection, содержащую возможные многоугольники, сформированные из составляющей линии набора геометрий. https://postgis.net/docs/ST_Polygonize.html
ST_BuildArea - создает площадную геометрию, образованную составной линией заданной геометрии. Тип возвращаемого значения может быть Polygon или MultiPolygon, в зависимости от ввода. Если входные линии не образуют многоугольники, возвращается NULL. Входные данные могут быть LINESTRINGS, MULTILINESTRINGS, POLYGONS, MULTIPOLYGONS и GeometryCollections. Эта функция будет предполагать, что все внутренние геометрии представляют собой отверстия. http://postgis.net/docs/ST_BuildArea.html