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。 第二个参数是一个介于 float8 0 和 1 之间的值,表示点之间的间距作为线长度的一部分。 如果第三个参数为 false,则最多构造一个点(相当于ST_LineInterpolatePoint。)
如果结果有零个或一个点,则将其作为 POINT 返回。 如果它有两个或更多点,则以 MULTIPOINT 形式返回。
可用性:2.5.0
该函数支持 3d 并且不会丢失 z-index。
该功能支持M坐标。
--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))