删除轨迹线中指定阈值的漂移点。
语法
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)