名称

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);

描述

返回沿线按分数间隔插值得到的点。第一个参数必须是线串。第二个参数是介于 0 和 1 之间的一个 float8,表示点之间的间距(以线长度的分数表示)。如果第三个参数为 false,则至多构造一个点(相当于 ST_LineInterpolatePoint。)

如果结果有零个或一个点,则以点形式返回。如果结果有两个或更多点,则以多点形式返回。

可用性:2.5.0

此函数支持 3d,并且不会丢弃 z 索引。

此函数支持 M 坐标。

示例

每隔 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))

另请参见

ST_LineInterpolatePointST_LineLocatePoint