Name

ST_FilterByM — M値に基づいて頂点を削除します。

Synopsis

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

説明

M値に基づいた頂点ポイントのフィルタリングを行います。返されるジオメトリは最小値(min値)以上かつ最大値(max値)以下のM値を持つポイントだけでできています。最大値の引数が指定されていない場合には、最小値のみ考慮されます。第4引数が指定されていない場合には、M値は結果ジオメトリに存在しません。結果ジオメトリの頂点ポイントの数が、ジオメトリを構成するに必要な数に達しない場合には、空ジオメトリが返されます。ジオメトリコレクション内の、十分なポイントを持たないジオメトリ要素は消えます。

この関数は主にST_SetEffectiveAreaとの併用を意図しています。ST_SetEffectiveAreaは頂点の有効面積をM値に設定します。ST_FilterByMによるフィルタリングだけで、他の計算なしに簡略化されたジオメトリを得られます。

[Note]

ポイント数が基準を満たすのに十分でない時のST_SimplifyVWの返り値とST_FilterByMの返り値とで違いがあります。ST_FilterByMは空ジオメトリを返し、ST_SimplifyVWは十分なポイントを持つジオメトリを返します。

[Note]

返されるジオメトリは不正である場合があることに注意して下さい。

[Note]

この関数は全ての次元を返し、Z値もM値も残ります。

Availability: 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)
                

関連情報

ST_SetEffectiveArea, ST_SimplifyVW