Name

ST_3DLineInterpolatePoint — 返回沿 3D 线的小数指示位置插值的点。

Synopsis

geometry ST_3DLineInterpolatePoint(geometry a_linestring, float8 a_fraction);

描述

返回沿 3D 线的小数指示位置插值的点。 第一个参数必须是 LINESTRING。 第二个参数是 0 到 1 之间的浮点数,表示点位置占线长度的一部分。 如果存在 M 值,则对其进行插值。

[Note]

ST_LineInterpolatePoint 计算 2D 中的点,然后对 Z 和 M 的值进行插值,而此函数计算 3D 中的点,并且仅对 M 值进行插值。

可用性:3.0.0

该函数支持 3d 并且不会丢失 z-index。

示例

沿 3D 线返回20%处的点

SELECT ST_AsText(
    ST_3DLineInterpolatePoint('LINESTRING(25 50 70, 100 125 90, 150 190 200)',
        0.20));

   st_asetext
----------------
 POINT Z (59.0675892910822 84.0675892910822 79.0846904776219)