名前

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
Geometry figure for visual-st-3dinterpolatepoint-01

この例では X と Y の幅がゼロの垂直ラインを使います。3次元上では動作し、2次元に投影すると動作しません。

コード
SELECT ST_3DInterpolatePoint(
'LINESTRING ZM (0 0 0 0,0 0 10 100)',
'POINT Z (5 5 5)');
出力
50
Geometry figure for visual-st-3dinterpolatepoint-02