ST_MAKEPOLYGON
📄字数 774
👁️阅读量 加载中...
功能描述
由给定边界构造多边形对象。
语法格式
sql
GEOMETRY ST_MAKEPOLYGON(GEOMETRY linestring);参数说明
- linestring:边界的 LINESTRING 对象。
函数返回类型
GEOMETRY类型
使用说明
- 该函数支持 3d 并且不会丢失 z-index。
- 输入几何图形必须是闭合的线串(环)。
- 此函数不接受多行字符串。 使用 ST_LINEMERGE 生成线串。它还使用 ST_DUMP 来提取线串。
示例
从 2D 线串生成多边形:
sql
SQL> SELECT ST_AsText(ST_MakePolygon(ST_GeomFromText('LINESTRING(75 29,77 29,77 29, 75 29)')));
+------------------------------------+
| EXPR1 |
+------------------------------------+
| POLYGON((75 29,77 29,77 29,75 29)) |
+------------------------------------+使用 ST_StartPoint 和 ST_AddPoint闭合开放线串以生成面:
sql
SQL> SELECT ST_AsText(ST_MakePolygon( ST_AddPoint(foo.open_line, ST_StartPoint(foo.open_line))))
FROM (
SELECT ST_GeomFromText('LINESTRING(75 29,77 29,77 29, 75 29)') As open_line) As foo;
+------------------------------------------+
| EXPR1 |
+------------------------------------------+
| POLYGON((75 29,77 29,77 29,75 29,75 29)) |
+------------------------------------------+从 3D 线串生成多边形:
sql
SQL> SELECT ST_AsEWKT( ST_MakePolygon( 'LINESTRING(75.15 29.53 1,77 29 1,77.6 29.5 1, 75.15 29.53 1)'));
+------------------------------------------------------------+
| EXPR1 |
+------------------------------------------------------------+
| POLYGON((75.15 29.53 1,77 29 1,77.6 29.5 1,75.15 29.53 1)) |
+------------------------------------------------------------+从具有 M 值的线串生成多边形:
sql
SQL> SELECT ST_AsEWKT( ST_MakePolygon( 'LINESTRINGM(75.15 29.53 1,77 29 1,77.6 29.5 2, 75.15 29.53 2)'));
+-------------------------------------------------------------+
| EXPR1 |
+-------------------------------------------------------------+
| POLYGONM((75.15 29.53 1,77 29 1,77.6 29.5 2,75.15 29.53 2)) |
+-------------------------------------------------------------+