我有一个由gpxlogger(1)
(作为gpsd的客户端提供)制作的 GPS 轨迹。GPS 接收器每 1 秒更新一次坐标,gpxlogger 的逻辑非常简单,它每n秒记录一次从 GPS 接收到的位置 ( lat
, lon
, ele
) 和时间戳 ( ) (在我的例子中n = 3 )。time
在写下几个小时的轨迹后,gpxlogger 保存了几兆字节长的 GPX 文件,其中包含数千个点。之后,我尝试在地图上绘制这条轨迹并将其与OpenLayers一起使用。它可以工作,但是数千个点使使用地图变得草率而缓慢。
我知道有几千个次优点。有无数的点可以删除而几乎不会丢失任何东西:当有几个点大致组成一条直线并且我们以相同的恒定速度移动它们之间时,我们可以留下第一个和最后一个点并扔掉带走其他任何东西。
我曾想过使用gpsbabel进行此类轨道简化/优化工作,但是,唉,它的简化过滤器仅适用于路线,即仅分析路径的几何形状,没有时间戳(即不检查速度是否大致恒定)。
是否有一些现成的实用程序/库/算法可用于优化轨道?或者我可能错过了 gpsbabel 的一些聪明选择?