返回给定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)