两个近似 GPS 坐标之间的最小距离

Minimum distance between two approximate GPS coordinates

我有两对纬度和经度,但每对也有关联的半径,因为坐标可能或多或少准确。 如何求地球上两个圆形区域之间的最小距离?

例子

这两个圆的周长之间的最短距离是多少?一个在英国伦敦,另一个在墨西哥坎昆?

另外,这两个重叠区域之间的距离应该是0米:

一个简单而令人愉快的近似方法是求圆心之间的距离,然后从中减去每个圆的半径。如果结果为负,则圆圈重叠且最小距离为 0;否则最小距离就是结果。这将在飞机上给出准确答案。

实际上,除了一些涉及几乎对映点的奇怪情况外,我认为这也会在椭球体上给出正确答案。因为(奇数情况除外)如果中心(比如 A 和 B)相距 d,则将存在从 A 到 B 的长度为 d 的测地线。如果我们沿着测地线向 B 移动距离 r(关于 A 的圆的半径),我们将到达圆上的点 a,类似地(从 B 到 A 的距离 s)我们到达圆上的点 b绕B圆。从A到B的测地线也是从a到b的测地线,沿它的距离为d-r-s。所以从a到b的距离是d-r-s。在比那更近的圆上不可能有点(比如 a',b'),因为如果有的话,我们可以通过从 A 到 a',沿着从 a' 到 b' 的测地线从 A 到 B,并且然后从B到b;但是从A到B的测地线是最短路线。

假设这两个区域是 "close enough" 所以可以忽略问题的球形性质,以及 ...

假设那些 "confidence regions" 对结果的用户在某种程度上很重要,连同...

事实上,单个数字作为结果会消除信息的不确定性(或测量误差),我建议不要指望一个数字,而是一个区间是足够的结果。

设 p1、p2 为区域 R1、R2 的两个 "close enough" 中心。
设u1、u2为与p1、p2测量相同距离单位的位置的不确定性,作为这些圆的半径。

中心距:
直流 p1 p2 = |p2-p1|

最小边界距离:
bdmin p1 p2 u1 u2 = (dc p1 p2) - u1 - u2

边界距离最大值:
bdmax p1 p2 u1 u2 = (dc p1 p2) + u1 + u2

那么,这些区域之间的距离就是区间:

[bdmin p1 p2 u1 u2, bdmax p1 p2 u1 u2]

let sq x = x*x
let distance p1 p2 : float = 
    let x1,y1 = p1
    let x2,y2 = p2
    sqrt(sq (x2-x1) + sq (y2-y1))

let rdistance p1 u1 p2 u2 = 
    ( (distance p1 p2) - u1 - u2
    , (distance p1 p2) + u1 + u2
    )

let rdistance3 p1 u1 p2 u2 =
    let mi,ma = rdistance p1 u1 p2 u2
    (mi,distance p1 p2,ma)


let P1 = (0.0,0.0)
let P2 = (10.0,10.0)
let U1 = 2.0
let U2 = 5.0

printfn "as interval: %A" (rdistance P1 U1 P2 U2)
printfn "as interval with center: %A" (rdistance3 P1 U1 P2 U2)

as interval: (7.142135624, 21.14213562)
as interval with center: (7.142135624, 14.14213562, 21.14213562)

后一个版本很好,因为它允许用户随心所欲地继续操作,拥有所有 3 个值,还能够感受准确性。

讨论:

如果真实数据看起来像图片上的数据,那么采用球面几何公式进行计算是没有意义的。原因是,圆圈的大小比欧几里德几何产生的误差大很多。

另一方面,如果真实数据的距离非常远,则采用圆心或圆的边缘进行计算可能无关紧要。因为与距离相比,圆的半径会很小。然后,虽然,球面几何是需要的。

最后一点,如果这只是一系列较长计算中的一个步骤,保持准确性信息是值得的。

例如 wikipedia article on interval arithmetic.

如果您将 U1、U2 视为统计参数,例如 n% 置信区域(想想标准偏差之类的东西),那么您可以尝试找到一个统计模型并对其进行推理。

热身,如果我们假设 P1 和 P2 都是来自相同统计分布的测量点,但显然不是。那么,两个点的方差将是相同的。显然不是这样。然后,给定一系列 P1、P2 对,您可以估计基础分布并使用类似 t 检验的方法来检验假设 P1 = P2。

现在,在 GPS 外行术语中,您可能拥有的 U1、U2 称为 "dilution of precision"(DOP,有些使用 2,实际上是 HDOP、VDOP),这是一个单一的数字,汇总了GPS定位计算。它是许多参数的函数,因为 GPS 接收器实际上可以注意到:

  • 用于修复的可见和已用卫星数量
  • 时间准确度估计
  • 卫星表示的精度信息
  • ...

比方说,GPS 接收器只能看到 3 颗卫星。它所做的是 "measure" 到每颗卫星的距离,该卫星位于 GPS 接收器已知的位置(卫星发送它们的位置)。因此,接收器可以从每颗卫星产生一个自己位置的球体,球体的半径是距离,中心是卫星的位置。

与为每颗使用的卫星计算的球体相交,可以接收到 GPS 接收器所在的体积。在没有任何测量错误等的情况下,它实际上是接收器的确切位置……在选择性可用性被关闭的情况下。 SA 是人造误差,卫星可以添加到它们的信息中,这会降低民用 GPS 接收器可以获得的精度。我认为它现在已经关闭了一段时间...

由于GPS接收器没有原子钟,但GPS卫星有原子钟,所以接收器的估计任务不仅是估计它的3个坐标,还有它自己的廉价时钟的状态。这就是为什么只有 3 颗卫星的 GPS 定位也称为 2D 定位(因为方程组仍未确定)。 4 颗或更多卫星产生 3D 定位。

除了其工作原理的基本理论之外,还有一些特定于 GPS 接收器位置的因素。除了接收器在给定位置可以使用的卫星数量之外,还可能存在 RF 频率反射等,这会使一个或多个卫星的 "distance computed by time delay" 出错。如果说 GPS 接收器看到 4 颗以上的卫星,它将能够解释,与其余测量值相比,某些测量值不一致。

然后将上面显示的所有这些方面计算为一个浮点数,命名为 "Dilution of precision"。

因此,很明显,要对假设 P1 <> P2 进行基本的统计检验并不容易,并且必须比此处以这种格式进行更深入的挖掘。