Name

ST_FilterByM — 根据 M 值删除顶点

Synopsis

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

描述

根据 M 值过滤掉顶点。 返回仅包含 M 值大于或等于最小值且小于或等于最大值的顶点的几何图形。 如果省略最大值参数,则仅考虑最小值。 如果省略第四个参数,则 m 值将不会出现在生成的几何图形中。 如果生成的几何图形为其几何类型留下的顶点太少,则将返回空几何图形。 在几何集合中,没有足够点的几何图形将被默默地排除。

该函数主要与 ST_SetEffectiveArea 结合使用。 ST_EffectiveArea 用其 m 值设置顶点的有效区域。 使用 ST_FilterByM,无需任何计算,只需过滤即可获得几何的简化版本

[Note]

与 ST_FilterByM 相比,当没有足够的点满足条件时,ST_SimplifyVW 返回的结果有所不同。 ST_SimplifyVW 返回具有足够点的几何图形,而 ST_FilterByM 返回空几何图形

[Note]

请注意,返回的几何图形可能无效

[Note]

该函数返回所有维度,包括 Z 和 M 值

可用性:2.5.0

示例

线串被过滤

SELECT ST_AsText(ST_FilterByM(geom,30)) simplified
FROM (SELECT  ST_SetEffectiveArea('LINESTRING(5 2, 3 8, 6 20, 7 25, 10 10)'::geometry) geom) As foo;

result

         simplified
----------------------------
 LINESTRING(5 2,7 25,10 10)