计算轨迹每个中间点的转向角,返回一个浮点数组。

语法

double precision[] ST_Angle(trajectory traj, boolean hasdirection default false);

参数

参数名称描述
traj轨迹对象。
hasdirection是否计算轨迹的转向方向。

如果为true,则向逆时针方向转向时,返回负值。

描述

对轨迹的每个中间点(假设某个轨迹有n个点,则其有n-2个中间点),计算轨迹在此点的转向角度。
  • 如果在此点沿直线运动,则转向角度为0。
  • 如果在此点处停留在原地,则转向角度为NaN。

示例

SELECT ST_Angle(ST_MakeTrajectory('LINESTRING(0 0, 0 10, 10 10, 20 10, 30 0, 30 0, 20 10, 0 10, 0 0)'));
        st_angle
-------------------------
 {90,0,45,NaN,NaN,45,90}
(1 row)

SELECT ST_Angle(ST_MakeTrajectory('LINESTRING(0 0, 0 10, 10 10, 20 10, 30 0, 30 0, 20 10, 0 10, 0 0)'), true);
         st_angle
---------------------------
 {90,0,45,NaN,NaN,-45,-90}
(1 row)