Skip to content

适用虚谷数据库版本

v12.9



适用虚谷数据库版本

v12.9


ST_GEOMETRYN

📄字数 814
👁️阅读量 加载中...

功能描述

返回指定几何图形的第 N 个元素几何图形。

语法格式

sql
GEOMETRY ST_GEOMETRYN(GEOMETRY geomA, INTEGER n);

参数说明

  • geomA:目标 GEOMETRY 对象;
  • n: 对象索引;

函数返回类型

GEOMETRY 类型

使用说明

  1. 计数索引从 1 开始。
  2. 几何图形是 GEOMETRYCOLLECTIONMULTIPOINTMULTILINESTRINGMULTICURVE(MULTI) POLYGONPOLYHEDRALSURFACE。其他返回 NULL。
  3. 要提取几何图形的所有元素,ST_DUMP 效率更高,并且适用于基本几何图形。
  4. 该函数支持 3d 并且不会丢失 z-index。
  5. 此方法支持圆形字符串和曲线。
  6. 该函数支持多面体曲面。
  7. 此函数支持三角形和不规则三角网面 (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)) |
+-------------------------------------+