ST_LineInterpolatePoint
ST_LineInterpolatePoint 返回一条直线上距离该线起点一小段距离的一个点。
要确定点相等性,ST_LineInterpolatePoint 对输入几何体的 2D 投影进行操作。如果输入几何体为空,则返回该几何体的维度与输入相同的副本。对于 3DZ、3DM 和 4D 几何体,z
或 m
坐标点所在线段的 z
或 m
坐标的平均值。
语法
ST_LineInterpolatePoint(geom, fraction)
参数
- geom
-
一个
GEOMETRY
数据类型的值,或一个计算结果为GEOMETRY
类型的表达式。子类型为LINESTRING
。 - fraction
-
数据类型
DOUBLE PRECISION
的一个值,表示点沿着线的线串的位置。该值是介于 0—1 范围内的一个分数,包含首尾。
返回类型
GEOMETRY
子类型 的 POINT
。
如果 geom 或 fraction 为 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)