刪除軌跡線中指定閾值的漂移點。
文法
trajectory ST_removeDriftPoints(trajectory traj, float8 speed, float8 dist, interval offset);
參數
參數名稱 | 描述 |
traj | 軌跡對象。 |
speed | 速度閾值(m/s)。 |
dist | 距離閾值(m)。 |
offset | 時間間隔閾值。 |
描述
刪除軌跡對象中滿足條件的軌跡點,滿足的條件要求軌跡點速度大於閾值speed(米/秒),且與上一軌跡點的距離大於閾值dist(米),時間間隔大於閾值offset,之後返回新的軌跡對象,該軌跡對象至少包含2個軌跡點。如果原始軌跡本身只有兩個軌跡點,則不做任何刪除。
參數speed是由軌跡位置和時間位移值Realtime Compute的結果,其單位固定為米/秒;距離閾值dist單位為米,時間閾值offset為時間間隔值。軌跡座標空間參考系預設為WGS84,如果不為該空間參考系,請在構建軌跡時指定空間參考值或使用st_setsrid設定軌跡的空間參考值,最終會根據空間參考值統一計算球面距離(單位為米)。
樣本
select id, st_leafcount(traj) from table_name where id = 1;
id | st_leafcount
----+--------------
1 | 53
(1 row)
update table_name set traj=st_removeDriftPoints(traj,25.72, 9620, interval '30 seconds') where id = 1;
--刪除了2個漂移點
select id, st_leafcount(traj) from table_name where id = 1;
id | st_leafcount
----+--------------
1 | 49
(1 row)