Skip to content

适用虚谷数据库版本

v12.9



适用虚谷数据库版本

v12.9


ST_COLLECTIONEXTRACT

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

功能描述

给定一个几何集合,返回同种类型多几何。

语法格式

sql
GEOMETRY ST_COLLECTIONEXTRACT(GEOMETRY collection);
GEOMETRY ST_COLLECTIONEXTRACT(GEOMETRY collection, INTEGER type);

参数说明

  • collection:目标 GEOMETRY 对象;
  • type:对象类型。

函数返回类型

GEOMETRY 类型

使用说明

  1. 如果未指定类型,则返回仅包含最高维度几何的多几何。 多边形优先于线,线优先于点。
  2. 如果指定了类型,则返回仅包含指定类型的多几何。如果没有指定类型的元素,则返回 EMPTY 几何图形。
  3. 如果指定了类型,仅支持点、线和面。类型编号:1:POINT,2:LINESTRING,3:POLYGON 。
  4. 对于基本几何输入,如果输入类型与请求的类型匹配,则几何图形将保持不变返回。 否则,结果是指定类型的空几何图形。 如果需要,可以使用 ST_Multi 将它们转换为多几何图形。

注意

不检查 MULTIPOLYGON 结果的有效性。 如果多边形组件相邻或重叠,则结果将无效。(例如,将此函数应用于 ST_SPLIT 结果时可能会发生这种情况。)可以使用 ST_ISVALID 检查这种情况并使用ST_MAKEVALID 修复。

示例

提取最大维度类型:

sql

SQL> SELECT TO_CHAR(ST_ASTEXT(ST_COLLECTIONEXTRACT('GEOMETRYCOLLECTION( POINT(0 0), LINESTRING(1 1, 2 2) )')));

+----------------------------+
|           EXPR1            |
+----------------------------+
| MULTILINESTRING((1 1,2 2)) |
+----------------------------+

提取点(type 1 == POINT):

sql

SQL> SELECT TO_CHAR(ST_ASTEXT(ST_COLLECTIONEXTRACT('GEOMETRYCOLLECTION(GEOMETRYCOLLECTION(POINT(0 0)))',1 )));

+-------------------+
|       EXPR1       |
+-------------------+
| MULTIPOINT((0 0)) |
+-------------------+

提取线(type 2 == LINESTRING):

sql
SQL> SELECT TO_CHAR(ST_ASTEXT(ST_COLLECTIONEXTRACT(
             'GEOMETRYCOLLECTION(GEOMETRYCOLLECTION(LINESTRING(0 0, 1 1)),LINESTRING(2 2, 3 3))',
             2 )));

+--------------------------------------+
|                EXPR1                 |
+--------------------------------------+
| MULTILINESTRING((0 0,1 1),(2 2,3 3)) |
+--------------------------------------+