ST_GEOMETRYN
📄字数 814
👁️阅读量 加载中...
功能描述
返回指定几何图形的第 N 个元素几何图形。
语法格式
sql
GEOMETRY ST_GEOMETRYN(GEOMETRY geomA, INTEGER n);参数说明
- geomA:目标 GEOMETRY 对象;
- n: 对象索引;
函数返回类型
GEOMETRY 类型
使用说明
- 计数索引从 1 开始。
- 几何图形是
GEOMETRYCOLLECTION、MULTIPOINT、MULTILINESTRING、MULTICURVE、(MULTI) POLYGON或POLYHEDRALSURFACE。其他返回 NULL。 - 要提取几何图形的所有元素,ST_DUMP 效率更高,并且适用于基本几何图形。
- 该函数支持 3d 并且不会丢失 z-index。
- 此方法支持圆形字符串和曲线。
- 该函数支持多面体曲面。
- 此函数支持三角形和不规则三角网面 (TIN)。
示例
提取 MULTIPOINT 对象:
sql
SQL> SELECT TO_CHAR(ST_AsEWKT(ST_GeometryN(ST_GeomFromEWKT('MULTIPOINT((1 2 7), (3 4 7), (5 6 7), (8 9 10))'), 4)));
+---------------+
| EXPR1 |
+---------------+
| POINT(8 9 10) |
+---------------+提取多面体曲面的第 3 个元素:
sql
SQL> SELECT TO_CHAR(ST_AsEWKT(ST_GeometryN(p_geom,3))) As geom_ewkt
FROM (SELECT ST_GeomFromEWKT('POLYHEDRALSURFACE(
((0 0 0, 0 0 1, 0 1 1, 0 1 0, 0 0 0)),
((0 0 0, 0 1 0, 1 1 0, 1 0 0, 0 0 0)),
((0 0 0, 1 0 0, 1 0 1, 0 0 1, 0 0 0)),
((1 1 0, 1 1 1, 1 0 1, 1 0 0, 1 1 0)),
((0 1 0, 0 1 1, 1 1 1, 1 1 0, 0 1 0)),
((0 0 1, 1 0 1, 1 1 1, 0 1 1, 0 0 1))
)') AS p_geom ) AS a;
+------------------------------------------+
| GEOM_EWKT |
+------------------------------------------+
| POLYGON((0 0 0,1 0 0,1 0 1,0 0 1,0 0 0)) |
+------------------------------------------+提取TIN的第 2 个元素:
sql
SQL> SELECT TO_CHAR(ST_AsEWKT(ST_GeometryN(geom,2))) as wkt
FROM
(SELECT
ST_GeomFromEWKT('TIN (((
0 0 0,
0 0 1,
0 1 0,
0 0 0
)), ((
0 0 0,
0 1 0,
1 1 0,
0 0 0
))
)') AS geom
) AS g;
+-------------------------------------+
| WKT |
+-------------------------------------+
| TRIANGLE((0 0 0,0 1 0,1 1 0,0 0 0)) |
+-------------------------------------+