ST_NumGeometries — 返回几何集合中的元素数量。
integer ST_NumGeometries(geometry geom);
该函数返回几何集合(GEOMETRYCOLLECTION 或 MULTI*)中的元素数量。对于非空的原子几何体,它返回 1。对于空的几何体,它返回 0。
增强功能:引入了2.0.0 对多面体曲面、三角形和三角网的支持。
更改:2.0.0 在之前的版本中,如果几何图形不是collection/MULTI 类型,则会返回 NULL。 2.0.0 现在对于单个几何图形返回 1,例如 POLYGON、LINESTRING、POINT。
Changed: 3.6.0 TIN and PolyhedralSurface are treated as unitary geometries and return 1; use ST_NumPatches to count faces.
该方法实现了SQL/MM规范。 SQL-MM 3: 9.1.4
该函数支持 3d 并且不会丢失 z-index。
该函数支持多面体曲面。
此函数支持三角形和不规则三角网面 (TIN)。
This example returns 1; prior versions would have returned NULL.
SELECT ST_NumGeometries('LINESTRING(77.29 29.07,77.42 29.26,77.27 29.31,77.29 29.07)');
st_numgeometries
------------------
1
(1 row)
A MultiPoint counts as one geometry within a GeometryCollection.
SELECT ST_NumGeometries('GEOMETRYCOLLECTION(MULTIPOINT((-2 3),(-2 2)),
LINESTRING(5 5,10 10),
POLYGON((-7 4.2,-7.1 5,-7.1 4.3,-7 4.2)))');
st_numgeometries
------------------
3
(1 row)