计算轨迹每个中间点的转向角,返回一个浮点数组。
语法
double precision[] ST_Angle(trajectory traj, boolean hasdirection default false);
参数
参数名称 | 描述 |
traj | 轨迹对象。 |
hasdirection | 是否计算轨迹的转向方向。 |
描述
对轨迹的每个中间点(假设某个轨迹有n个点,则其有n-2个中间点),计算轨迹在此点的转向角度。
如果在此点沿直线运动,则转向角度为0。
如果在此点处停留在原地,则转向角度为NaN。
示例
SELECT ST_Angle(ST_MakeTrajectory('STPOINT'::leaftype,'LINESTRING(0 0, 0 10, 10 10, 20 10, 30 0, 30 0, 20 10, 0 10, 0 0)', '2000-01-01', '2000-01-01'::timestamp+ '1 day'::interval* (ST_NPoints('LINESTRING(0 0, 0 10, 10 10, 20 10, 30 0, 30 0, 20 10, 0 10, 0 0)')-1), '{}'));
st_angle
-------------------------
{90,0,45,NaN,NaN,45,90}
SELECT ST_Angle(ST_MakeTrajectory('STPOINT'::leaftype,'LINESTRING(0 0, 0 10, 10 10, 20 10, 30 0, 30 0, 20 10, 0 10, 0 0)', '2000-01-01', '2000-01-01'::timestamp+ '1 day'::interval* (ST_NPoints('LINESTRING(0 0, 0 10, 10 10, 20 10, 30 0, 30 0, 20 10, 0 10, 0 0)')-1), '{}'), true);
st_angle
---------------------------
{90,0,45,NaN,NaN,-45,-90}
文档内容是否对您有帮助?