从GPS坐标计算平均速度的最佳实践

Rof*_*ion 19 algorithm math gps android

我这里有一个可以给我GPS坐标的设备.我可以定义的时间间隔.我想用它来计算驾驶或乘车旅行时的平均速度.实际上我使用了一个正交公式来计算两点之间的距离,然后将它除以给定的时间间隔.通过实施我遵循这个术语.不幸的是我只能找到一个德语链接,但我认为这个公式应该可以用任何语言理解;)

不幸的是,使用这个公式和1秒的时间间隔给出了非常不准确的结果.步行的速度在1公里/小时到20公里/小时之间.

所以我想知道是否有关于如何在两个GPS坐标之间实现距离计算的一般参考(我在SO上发现了类似的东西)和特别是,这是更新GPS坐标的最佳时间间隔?

Mus*_*sis 24

我假设您通过以恒定速度行走(我认为~5 kph是正常步行速度)来测试这一点,同时每秒测量一次GPS位置.

您在瞬时速度(每个测量点之间的距离除以1秒)中看到的变化可能是由于测量的GPS位置的随机变化,或者您没有将测量间隔恰好一秒(或者它可能是这两件事).

我会假设你的测量采取精确相隔一秒.手持GPS设备是比标榜不准确的.虽然人们经常声称设备精确到真实位置的10英尺以内,但事实并非如此.

测量和报告GPS设备准确性的最佳方法是将其留在可以看到卫星并且不会下雨的地方,并记录几天的数据.然后,您可以使用谷歌地图绘制积分 - 我在我的房子周围和办公室周围做了这个,这是一种给你一种规模感的好方法.

显然,如果设备完全准确,您可以在一个位置看到所有测量点.或者,如果10英尺精度的事情是真的,你会看到一个20英尺直径圆内的一个小集群中的所有点.

您所看到的(我曾经测试过的每个支持GPS的设备)都是在几秒钟内发生的相对较小的位置散射(大约几十英尺)的组合,以及更长期的平均位置的"随机游走",可能在一两天内移动200或300英尺.例如,在您自己的房子上绘制时,它可能看起来像您的PDA徘徊到邻居的房子,然后穿过街道,然后沿着街道走两个房子,回到你身边等等,同时在这里抖动约5或10英尺或者喜欢它喝太多咖啡.

GPS 可以比这更准确.测量员使用具有更强大接收器组的设备(因此他们可以更准确地读取卫星信号),并且他们将它们一次放置几天以平均连续测量.手持设备具有廉价的接收器芯片和廉价的天线,并且无论如何都必须处理各种信号干扰.

您最好的选择是运行平均值来计算您的瞬时速度.不是将当前点和前一点之间的距离除以1秒,而是取点之间的最后5个距离并除以5秒(或您使用的任何秒数).重要的是不要仅仅取得当前点和5秒前的点之间的差异,并将该距离除以5,因为这将错过任何非线性运动.

更新: 我在评论中注意到您使用的是Android设备.你知道它是否有内置的GPS接收器吗?许多(大多数?)Android设备没有,这意味着他们的GPS不是GPS的卫星三角测量版,而是猜测我在哪里 - 基于信号 - 来自-cell-tower版本.这在位置上准确得多,因为我相信你可以从我描述的狡猾中辨别出来.:)


Mar*_*tos 11

GPS系统可以直接产生瞬时速度,无需插入位置.我在某处读到速度读数实际上比位置读数更准确.您使用的是哪种设备/系统/操作系统?

在Android上,尝试实现中的android.location.Location.getSpeed()方法(以及hasSpeed())LocationListener.


小智 6

在Google上搜索GPS速度精度,您会发现报告表明,计算出的位置与时间之间的速度比仅使用GPS接收器的速度参数差十倍.速度参数不依赖于位置精度,而是根据卫星信号的多普勒(速度/频率差)计算得出.

祝好运