ST_FilterByM — 根据 M 值移除顶点
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,则可以通过过滤获得几何图形的简化版本,而无需任何计算。
当不满足条件的点数不足时,ST_SimplifyVW 的返回值与 ST_FilterByM 的返回值有所不同。ST_SimplifyVW 返回具有足够点的几何图形,而 ST_FilterByM 返回一个空几何图形。 |
请注意,返回的几何图形可能无效。 |
此函数返回所有维度,包括 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)