ST_Angle
計(jì)算軌跡每個中間點(diǎn)的轉(zhuǎn)向角,返回一個浮點(diǎn)數(shù)組。
語法
double precision[] ST_Angle(trajectory traj, boolean hasdirection default false);
參數(shù)
參數(shù)名稱 | 描述 |
traj | 軌跡對象。 |
hasdirection | 是否計(jì)算軌跡的轉(zhuǎn)向方向。 |
描述
對軌跡的每個中間點(diǎn)(假設(shè)某個軌跡有n個點(diǎn),則其有n-2個中間點(diǎn)),計(jì)算軌跡在此點(diǎn)的轉(zhuǎn)向角度。
如果在此點(diǎn)沿直線運(yùn)動,則轉(zhuǎn)向角度為0。
如果在此點(diǎn)處停留在原地,則轉(zhuǎn)向角度為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}
文檔內(nèi)容是否對您有幫助?