ST_COLLECTIONEXTRACT
📄字数 934
👁️阅读量 加载中...
功能描述
给定一个几何集合,返回同种类型多几何。
语法格式
sql
GEOMETRY ST_COLLECTIONEXTRACT(GEOMETRY collection);
GEOMETRY ST_COLLECTIONEXTRACT(GEOMETRY collection, INTEGER type);参数说明
- collection:目标 GEOMETRY 对象;
- type:对象类型。
函数返回类型
GEOMETRY 类型
使用说明
- 如果未指定类型,则返回仅包含最高维度几何的多几何。 多边形优先于线,线优先于点。
- 如果指定了类型,则返回仅包含指定类型的多几何。如果没有指定类型的元素,则返回 EMPTY 几何图形。
- 如果指定了类型,仅支持点、线和面。类型编号:1:POINT,2:LINESTRING,3:POLYGON 。
- 对于基本几何输入,如果输入类型与请求的类型匹配,则几何图形将保持不变返回。 否则,结果是指定类型的空几何图形。 如果需要,可以使用 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)) |
+--------------------------------------+