名稱

ST_LineInterpolatePoints — 返回沿線以指定的分數間隔內插的點。

概要

geometry ST_LineInterpolatePoints(geometry a_linestring, float8 a_fraction, boolean repeat);

geography ST_LineInterpolatePoints(geography a_linestring, float8 a_fraction, boolean use_spheroid = true, boolean repeat = true);

描述

返回沿線以分數間隔內插的一個或多個點。第一個參數必須是 LINESTRING。第二個參數是介於 0 和 1 之間的 float8,表示點之間的間隔,以線長度的分數表示。如果第三個參數為 false,則最多會建構一個點(這等效於 ST_LineInterpolatePoint)。

如果結果有零個或一個點,則會以 POINT 形式傳回。如果結果有兩個或多個點,則會以 MULTIPOINT 形式傳回。

可用性:2.5.0

此函數支援 3D,並且不會丟棄 z 索引。

此函數支援 M 坐標。

範例

一個 LineString,每 20% 的距離內插點

--Return points each 20% along a 2D line
SELECT ST_AsText(ST_LineInterpolatePoints('LINESTRING(25 50, 100 125, 150 190)', 0.20))
----------------
 MULTIPOINT((51.5974135047432 76.5974135047432),(78.1948270094864 103.194827009486),(104.132163186446 130.37181214238),(127.066081593223 160.18590607119),(150 190))