计算靠近的GPS坐标之间的距离(单位:m,xyz)



我有一组GPS坐标,我想找到无人机在它们之间飞行所需的速度。通过计算x y z中的距离,然后除以旅行时间-m/s来实现这一点。

我知道大圆的距离,但我认为这是不正确的,因为它们都相对较近(在10米以内)?

有准确的方法吗?

对于小距离,与Vincenty的f.e.相比,您可以使用haversine公式,而不会损失相关的准确性。此外,它的设计适用于非常小的距离。如果你感兴趣,可以在这里阅读。

您可以通过将两个点的lat/long/alt转换为XYZ格式来实现这一点。然后,计算出移动其中一个点(通常是最老的点)的旋转角度,使其位于lat=0 long=0 alt=0。将第二个位置报告(最新点)旋转相同的旋转角度。如果你做得正确,你会发现X等于东偏移,Y等于北偏移,Z等于上偏移。可以使用带有X和Y(北和东)偏移的勾股定理来确定行进的水平距离。通常,您只需忽略海拔差异,只使用水平数据。

所有这些都假设您正在使用精确的公式将lat/lon/alt转换为XYZ。它还假设您在lat/lon/alt值中有足够的精度以使其准确。如果你想要好的结果,近似是不好的。通常,您需要以lat/lon值为单位的大约6位小数精度来计算位置,精确到米级别。

请记住,如果你没有移动太远(超过10米或20米,越多越好),这种方法效果就不太好。GPS位置报告中有足够多的噪音,你会得到跳跃的速度值,你需要进一步过滤才能获得良好的精度。这里的数学方法不是问题,而是GPS位置报告中固有的噪声。当你有好的报告时,你会得到好的速度。

GPS接收器通常不会使用这种方法来了解速度。它观察每个卫星的多普勒值的变化方式,并考虑当前位置,以了解速度。当车辆移动时,这相当有效。这是一种检测速度变化的更快方法(例如,释放位置夹)。普通用户无法访问内部多普勒值,并且数学变得非常复杂,所以这不是你能做的。

最新更新