ST_LINELOCATEPOINT
📄字数 587
👁️阅读量 加载中...
功能描述
返回指定点在线串上的位置,即:点的位置与线长度的比率。
语法格式
sql
DOUBLE ST_LINELOCATEPOINT(GEOMETRY a_linestring, GEOMETRY a_point);
DOUBLE ST_LINELOCATEPOINT(GEOGRAPHY a_linestring, GEOGRAPHY a_point, BOOLEAN use_spheroid = true);参数说明
- a_linestring: 目标 LINESTRING 对象。
- a_point:目标 POINT 对象。
- use_spheroid:距离测量是否使用椭球体,可选,默认:TRUE。
- TRUE:使用椭球体。
- FALSE:在球面上进行测量,计算更快。
函数返回类型
DOUBLEY 类型
使用说明
- 可以使用返回的位置来提取点 (ST_LINEINTERPOLATEPOINT) 或子字符串 (ST_LINESUBSTRING)。
- 该函数在估算地址数量时很有用。
示例
查找 LINESTRING 到 POINT 的最近的点:
sql
SQL> SELECT TO_CHAR(ST_AsText(ST_LineInterpolatePoint(foo.the_line, ST_LineLocatePoint(foo.the_line, ST_GeomFromText('POINT(4 3)')))))
FROM (SELECT ST_GeomFromText('LINESTRING(1 2, 4 5, 6 7)') As the_line) As foo;
+------------+
| EXPR1 |
+------------+
| POINT(3 4) |
+------------+