计算靠近在一起的GPS坐标之间以xyz为单位的距离

时间:2014-10-23 09:28:04

标签: gps distance

我有一套GPS坐标,我想找到无人机在它们之间穿行所需的速度。通过计算x y z中的距离然后除以行程的时间来进行此操作 - m / s。

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

有没有一种准确的方法可以做到这一点?

2 个答案:

答案 0 :(得分:0)

对于小距离,与Vincenty的f.e相比,您可以使用haversine formula而没有相关的准确性损失。此外,它的设计精确到极小的距离。如果您有兴趣,可以阅读here

答案 1 :(得分:0)

您可以通过将lat / long / alt转换为两种点的XYZ格式来实现。然后,找出旋转角度以移动其中一个点(通常是最旧的点),使其处于lat = 0 long = 0 alt = 0。以相同的旋转角度旋转第二个位置报告(最新点)。如果你正确地完成所有操作,你会发现X等于东偏移,Y等于北偏移,Z等于上偏移。您可以使用Pythagorean theorm与X和Y(北和东)偏移来确定行进的水平距离。通常,您只需忽略高度差异并仅使用水平数据。

所有这些假设您使用准确的公式将lat / lon / alt转换为XYZ。它还假设您在lat / lon / alt值中具有足够的精度是准确的。如果你想要好的结果,近似值并不好。通常,在纬度/经度值中需要大约6个十进制数字的精度来计算低至精度等级的位置。

请记住,如果您没有移动太远(大于大约10或20米,越多越好),此方法不能很好地工作。 GPS位置报告中有足够的噪声,您将获得跳跃速度值,您需要进一步过滤以获得良好的准确度。这里的数学方法不是问题,它是GPS位置报告中的固有噪声。当你有好的报告时,你会得到很好的速度。

GPS接收器通常不使用此方法来了解速度。它着眼于每个卫星的多普勒值变化的方式以及当前位置的因素,以了解速度是多少。当车辆移动时,这种方法工作得相当好。检测速度变化的速度要快得多(例如,释放位置钳)。普通用户无法访问内部多普勒值,数学变得非常复杂,所以这不是你可以做的事情。