如何在 Android 中通过 GPS 获得准确的速度?
是的,我知道 Location
类中的 location.getSpeed()
方法。问题是,默认实现返回 0.0 作为速度:显然 that is the default behavior .
我目前正在做的,如下,考虑位置对象a和b,其中a先取,b后取:
a.distanceTo(b)/(b.getTime()-a.getTime());
(为了可读性而简化,原始代码处理历史ArrayList
)
问题是这有点不准确:在正常情况下,数据点彼此如此接近,以至于 GPS 不准确确实成为一个问题。我需要降低更新频率或计算相对于更远点的速度。前者我不想做,因为我想获得尽可能高的频率,但也许我可以过滤这些点以根据它们彼此的距离来计算速度?
我假设 getSpeed()
方法会做的最佳解决方案是根据 GPS 卫星本身计算速度,从而获得更准确的结果。
我是否以某种方式使用了 getSpeed()
错误?
最佳答案
既然你保留历史为什么不...
获取当前位置和时间
找出当前和最后一个 ~10 之间的速度
取结果的平均值
关于android - 如何从 Android 中的 GPS 获得最准确的速度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9767151/