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)