ST_removeDriftPoints

删除轨迹线中指定阈值的漂移点。

语法

trajectory ST_removeDriftPoints(trajectory traj, float8 speed, float8 dist, interval offset);

参数

参数名称

描述

traj

轨迹对象。

speed

速度阈值(m/s)。

dist

距离阈值(m)。

offset

时间间隔阈值。

描述

删除轨迹对象中满足条件的轨迹点,满足的条件要求轨迹点速度大于阈值speed(米/秒),且与上一轨迹点的距离大于阈值dist(米),时间间隔大于阈值offset,之后返回新的轨迹对象,该轨迹对象至少包含2个轨迹点。如果原始轨迹本身只有两个轨迹点,则不做任何删除。

参数speed是由轨迹位置和时间偏移值实时计算的结果,其单位固定为米/秒;距离阈值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)