Name

ST_3DInterpolatePoint — 3次元で最も近いジオメトリの補間M値を返します。

Synopsis

float8 ST_3DInterpolatePoint(geometry linear_geom_with_measure, geometry point);

説明

ライン系ZMジオメトリの、与えた点から最も近い位置の補間M値を返します。使用投影法の3次元 (XYZ)距離を使います。航空機の航跡のようにZ値の変化が重要となり、 Z値を無視するST_InterpolatePointでは間違った結果が得られるようなジオメトリに対してこの関数を使います。

[Note]

ラインは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