我这里有个可以给我GPS坐标的装置。我可以定义的时间间隔。我想用它来计算开车或驾车旅行时的平均速度。实际上,我使用了一个正交公式来计算两点之间的距离,然后将其除以给定的时间间隔。通过实现,我遵循了this term。不幸的是,我只能找到一个德语链接,但我认为这个公式应该在任何语言中都能理解;)
不幸的是,使用这个公式和1秒的时间间隔会得到非常不精确的结果。行走时的速度在1公里/小时到20公里/小时之间。
所以我想知道如何实现两个GPS坐标之间的距离计算(我找到了类似的东西)和具体的,更新GPS坐标的最佳时间间隔有没有一般的参考?
发布于 2010-05-09 09:09:38
我假设你是通过以恒定的速度行走(我认为大约每小时5公里是正常的行走速度)来测试这一点,同时每秒测量一次你的GPS位置。
你看到的瞬时速度的变化(每个测量点之间的距离除以1秒)要么是由于测量的GPS位置的随机变化,要么是因为你的测量没有恰好相隔一秒(或者这两种情况都有)。
我假设你们的测量是精确间隔一秒的。手持式GPS设备的精确度比广告中的要低得多。虽然人们经常声称这些设备的精确度在10英尺以内。真实的位置,这根本不是这样的。
测量和报告GPS设备精度的最好方法是把它放在一个它可以看到卫星的地方,不会被雨淋到,并记录下几天的数据。然后您可以使用Google Maps来绘制这些点-我已经在我的房子周围和办公室周围这样做了,这是一个很好的方式来给您一个规模的感觉。
显然,如果这些设备非常准确,您将在一个点上看到所有测量点。或者,如果10英尺。准确性的事情是真的,你会看到20英尺范围内的所有点。直径圆。
相反,你看到的(对于我测试过的每个支持GPS的设备)是相对较小的位置散射(大约几十英尺)在几秒钟的范围内发生的组合,以及可能移动200或300英尺的平均位置的长期“随机漫步”。在一两天的时间里。例如,当你的PDA在你自己的房子上绘制时,它可能看起来像是你的PDA漫步到邻居家,然后穿过街道,然后沿着街道走两个房子,回到你身边等等,所有这些都是在大约5或10英尺的地方抖动,就像它喝了太多的咖啡一样。
GPS可以比这更精确。测量员使用的设备具有更强大的接收器(因此他们可以获得更准确的卫星信号读数),他们一次将卫星信号放在原地数天,以求连续测量的平均值。手持设备拥有廉价的接收器芯片和廉价的天线,而且无论如何都必须处理各种信号干扰。
你最好的办法是做一个运行平均值来计算你的瞬时速度。不是将当前点和上一个点之间的距离除以1秒,而是将点之间的最后5个距离除以5秒(或您使用的任何秒数)。重要的是,不要只取当前点和5秒前的点之间的差,并将此距离除以5,因为这将错过任何非线性运动。
更新:我在评论中注意到你使用的是安卓设备。你知道它有没有内置的GPS接收器?许多(大多数?)安卓设备没有,这意味着他们的全球定位系统不是卫星上三角定位的版本,而是版本。这在位置上就不那么准确了,我相信你可以从我描述的尖酸刻薄中看出。:)
发布于 2010-05-09 08:48:24
GPS系统可以直接产生瞬时速度,而不需要插入位置。我在某处读到,速度读数实际上比位置读数更准确。您使用的是什么设备/系统/操作系统?
在Android上,在您的LocationListener
实现中尝试android.location.Location.getSpeed()
方法(以及hasSpeed()
)。
发布于 2012-04-02 04:55:55
在谷歌上搜索GPS速度精度,你会发现报告说,根据位置与时间计算的速度比直接使用GPS接收器发出的速度参数差十倍。速度参数不依赖于位置精度,而是根据卫星信号的多普勒(速度/频率差)计算出来的。
祝好运
https://stackoverflow.com/questions/2796157
复制相似问题