ST_LineInterpolatePoint - Amazon Redshift

ST_LineInterpolatePoint

ST_LineInterpolatePoint 返回一条直线上距离该线起点一小段距离的一个点。

要确定点相等性,ST_LineInterpolatePoint 对输入几何体的 2D 投影进行操作。如果输入几何体为空,则返回该几何体的维度与输入相同的副本。对于 3DZ、3DM 和 4D 几何体,zm 坐标点所在线段的 zm 坐标的平均值。

语法

ST_LineInterpolatePoint(geom, fraction)

参数

geom

一个 GEOMETRY 数据类型的值,或一个计算结果为 GEOMETRY 类型的表达式。子类型为 LINESTRING

fraction

数据类型 DOUBLE PRECISION 的一个值,表示点沿着线的线串的位置。该值是介于 0—1 范围内的一个分数,包含首尾。

返回类型

GEOMETRY子类型 的 POINT

如果 geomfraction 为 null,则返回 null。

如果 geom 为空,则返回一个空点。

返回的几何体的空间参考系统标识符 (SRID) 值是输入几何体的 SRID 值。

如果 fraction 超出范围,则返回一个错误。

如果 geom 不是线串,则返回一个错误。

示例

以下 SQL 返回沿线串中途的点。

SELECT ST_AsEWKT(ST_LineInterpolatePoint(ST_GeomFromText('LINESTRING(0 0, 5 5, 7 7, 10 10)'), 0.50));
st_asewkt ----------- POINT(5 5)

以下 SQL 返回沿线串行程 90% 的点。

SELECT ST_AsEWKT(ST_LineInterpolatePoint(ST_GeomFromText('LINESTRING(0 0, 5 5, 7 7, 10 10)'), 0.90));
st_asewkt ----------- POINT(9 9)