ST_POLYGONIZE
📄字数 937
👁️阅读量 加载中...
功能描述
创建一个 GeometryCollection,其中包含由一组几何图形的线条形成的多边形。
语法格式
sql
GEOMETRY ST_POLYGONIZE(GEOMETRY SET geomfield);参数说明
- geomfield:目标 GEOMETRY 对象。
函数返回类型
GEOMETRY 类型
使用说明
- 如果输入线条未形成任何多边形,则返回空的 GeometryCollection。
- 此函数创建覆盖所有分隔区域的多边形。 如果结果旨在形成有效的多边形几何体,请使用 ST_BuildArea 来防止填充孔。
- 输入线条必须正确节点才能使该功能正常工作。 为了确保输入已节点化,请在多边形化之前在输入几何体上使用 ST_Node。
示例
输入线,输出多边形化集合:
sql
SQL> WITH data(geom) AS (
SELECT 'LINESTRING (180 40, 30 20, 20 90)'::geometry union all
SELECT 'LINESTRING (180 40, 160 160)'::geometry union all
SELECT 'LINESTRING (80 60, 120 130, 150 80)'::geometry union all
SELECT 'LINESTRING (80 60, 150 80)'::geometry union all
SELECT 'LINESTRING (20 90, 70 70, 80 130)'::geometry union all
SELECT 'LINESTRING (80 130, 160 160)'::geometry union all
SELECT 'LINESTRING (20 90, 20 160, 70 190)'::geometry union all
SELECT 'LINESTRING (70 190, 80 130)'::geometry union all
SELECT 'LINESTRING (70 190, 160 160)'::geometry
)
SELECT ST_AsText( ST_Polygonize( geom )) FROM data;
+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| EXPR1 |
+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| GEOMETRYCOLLECTION(POLYGON((180 40,30 20,20 90,70 70,80 130,160 160,180 40),(150 80,120 130,80 60,150 80)),POLYGON((80 60,120 130,150 80,80 60)),POLYGON((80 130,70 70,20 90,20 160,70 190,80 130)),POLYGON((160 160,80 130,70 190,160 160))) |
+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
(1 row)