ST_FilterByM

根据Geometry对象的m值过滤掉其顶点。

语法

geometry  ST_FilterByM(geometry  geom , double precision  min , double precision  max , boolean  returnM);

参数

参数名称

描述

geom

目标Geometry对象。

min

最小值,默认为null。

max

最大值,默认为null。

returnM

返回M值,默认为false。

描述

  • 返回顶点的m值大于或等于最小值且小于或等于最大值的Geometry对象。

    如果忽略了最大值参数,则仅考虑最小值。

  • 如果生成的Geometry剩余的顶点太少,则将返回一个空的Geometry对象。

  • 在GeometryCollection对象中,没有足够点的Geometry对象会被忽略掉。

  • 与ST_FilterByM相比,当没有足够的点满足条件时,ST_SimplifyVW返回的内容有所不同。 ST_SimplifyVW返回具有足够点的几何图形,而ST_FilterByM返回空的Geometry对象。

  • 返回的Geometry对象可能是无效的。

  • 该函数将返回源对象的全部维度,包括Z和M值。

示例

  • 默认调用:

    SELECT ST_AsText(ST_FilterByM('LINESTRINGM(0 0 0,1 1 1,2 2 2,3 3 3)'::geometry,2,4,true));
             st_astext
    ----------------------------
     LINESTRING M (2 2 2,3 3 3)
    (1 row)
                        
  • 无法构成Geometry的情况:

    SELECT ST_AsText(ST_FilterByM('LINESTRINGM(0 0 0,1 1 1,2 2 2,3 3 3)'::geometry,3,4,true));
         st_astext
    --------------------
     LINESTRING M EMPTY
    (1 row)