ST_3DInterpolatePoint — 3次元で最も近いジオメトリーの補間 M 値を返します。
float8 ST_3DInterpolatePoint(geometry linear_geom_with_measure, geometry point);
ライン系 ZM ジオメトリーの、与えた点から最も近い位置の補間 M 値を返します。使用投影法の 3次元 (XYZ) 距離を使います。航空機の航跡のように Z 値の変化が重要となり、 Z値を無視するST_InterpolatePointでは間違った結果が得られるようなジオメトリーに対してこの関数を使います。
|
|
|
ラインは Z 値と M 値を持っていなければなりません。ポイントは Z 値をもっていなければなりません。 |
Availability: 3.7.0
この関数は3次元に対応し、Z値を削除しません。
この例では Z 値が斜めに上がっているラインの 3次元の中間点での補間を行っています。
SELECT ST_3DInterpolatePoint( 'LINESTRING ZM (0 0 0 0,10 0 10 20)', 'POINT Z (5 0 5)');
10
この例では X と Y の幅がゼロの垂直ラインを使います。3次元上では動作し、2次元に投影すると動作しません。
SELECT ST_3DInterpolatePoint( 'LINESTRING ZM (0 0 0 0,0 0 10 100)', 'POINT Z (5 5 5)');
50