ST_GeometryN

返回给定Geometry里面的第N个对象。

语法

geometry  ST_GeometryN(geometry  geomA , integer  n);

参数

参数名称

描述

geomA

目标Geometry对象。

n

对象索引。

描述

  • 计数索引从1开始。

  • 支持GeometryCollection、(Multi)Point,(Multi)LineString,MultiCurve、(Multi)Polygon和PolyhedralSurface。其他则返回NULL。

  • 如果要提取Geometry对象的所有子图形,则ST_Dump效率更高,并且也适用于各种几何图形。

  • 该函数支持Circular Strings、Curves、Polyhedral surfaces、Triangles、Triangulated Irregular Network Surfaces(TIN)和3D对象。

示例

  • 提取Multi对象:

    SELECT ST_AsText(ST_GeometryN('MULTIPOLYGON(((1 0,3 0,0 3,1 0)),((1 0,2 0, 0 2,1 0)))'::geometry,2));
             st_astext
    ----------------------------
     POLYGON((1 0,2 0,0 2,1 0))
    (1 row)
                        
  • 提取GeometryCollection对象:

    SELECT ST_AsText(ST_GeometryN('GeometryCollection(POINT(1 0),POLYGON((1 0,2 0, 0 2,1 0)))'::geometry,1));
     st_astext
    ------------
     POINT(1 0)
    (1 row)