我正在获得纬度和经度的回调,我怎样才能最好地计算"当前速度"和其他派生值?

Cor*_*ger 6 gps

(我认为这个问题与平台无关,但我碰巧编写了一个Nexus One).

关于"当前速度":我每秒都会收到回调,告诉我当前的纬度和经度是多少.我可以计算当前位置和之前位置之间的距离,这样我就可以跟踪累积距离和累积时间.有了这个,我可以说整个行程的平均速度是多少.

但我如何计算当前的速度?我怀疑我需要使用最新的N个样本,对吧?我是否正确地思考这个问题?对于N来说,有什么好的经验法则?多少个样品,或多少秒钟?

关于"停止时间":如果我只是静止不动,我仍然可以得到略微不同的纬度和经度,对吧?因此,决定我不是真正感动的意思是说"以前的X地方都在彼此的Y米之内",对吗?我是否正确地思考这个问题?X和Y有什么好的经验法则?

即使是"距离":我是否会低估它,因为我真的在偷工减料?是否有算法或经验法则,用于确定我何时"转向"并且我应该添加一点点软糖?

编辑:我道歉:我觉得不好浪费别人的时间和良好意愿,但遗憾的是,该设备IS给我的速度.我认为这不是因为在模拟器中它不是,而是在真实的设备上.谢谢大家.我还需要编写一些经验法则代码,但速度是最大的挑战.

编辑:我收回道歉.在我最初的问题中,我写道距离也是一个派生值.如果我只使用原始GPS数据,由于不准确,我将夸大距离.我可能会走一条直线,但原始GPS纬度/长度会摇摆,所以如果我通过测量点之间的距离来计算总距离,我会夸大它.这里有一些与此问题相关的链接.

平滑的GPS数据
http://www.cs.unc.edu/~welch/kalman/Levy1997/index.html
如何智能地降低或平滑GIS数据(简化多边形)?
如何"平滑"数据并计算线条渐变?

Tha*_*iou 1

关于当前速度:大多数 GPS 设备都会自行向您发送此信息

  • 速度的计算确实与位置无关。报告修复时的瞬时速度是通过测量接收器从可见卫星接收到的信号中的多普勒频移来确定的。如果您知道卫星向接收器移动的速度(根据轨道方程),则可以假设接收器静止不动来计算预期的多普勒频移。预期多普勒与测量多普勒之间的差异使您可以计算接收器速度。而且这个计算出来的速度通常是相当准确的。 (2认同)