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

Math 两个近似GPS坐标之间的最小距离,math,geometry,coordinates,distance,latitude-longitude,Math,Geometry,Coordinates,Distance,Latitude Longitude,我有两对纬度和经度,但每对都有一个相关半径,因为坐标可能或多或少精确。如何找到地球上两个圆形区域之间的最小距离 NET代码计算两个精确地理坐标之间的距离,但不考虑相关半径 例子 这两个圆圈的周长之间的最短距离是多少,一个在英国伦敦,另一个在墨西哥坎昆 此外,这两个重叠区域之间的距离应为0米: 一个便宜而令人愉快的近似方法是找到中心之间的距离,然后从中减去每个圆的半径。如果结果为负,则圆圈重叠,最小距离为0;否则,结果为最小距离。这将在飞机上给出确切的答案 事实上,除了一些涉及几

我有两对纬度和经度,但每对都有一个相关半径,因为坐标可能或多或少精确。如何找到地球上两个圆形区域之间的最小距离

  • NET代码计算两个精确地理坐标之间的距离,但不考虑相关半径
例子 这两个圆圈的周长之间的最短距离是多少,一个在英国伦敦,另一个在墨西哥坎昆

此外,这两个重叠区域之间的距离应为0米:


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


事实上,除了一些涉及几乎相反的点的奇怪情况外,我认为这也会给出关于球体的正确答案。因为(除了奇数的情况)如果中心(A和B)是分开的,那么从A到B将有一个长度为d的测地线。如果我们沿着测地线朝B走一段距离r(围绕a的圆的半径),我们将到达圆上的点a,同样地(从B到a的距离s朝a),我们到达围绕B的圆上的点B。从a到B的测地线也是从a到B的测地线,沿着它的距离是d-r-s。从a到b的距离是d-r-s。圆上不可能有点(a',b',比如说)比那更靠近,因为如果有,我们可以从a到b,沿着测地线从a'到b',然后从b到b;但是从A到B的测地线是最短的路线。

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


事实上,除了一些涉及几乎相反的点的奇怪情况外,我认为这也会给出关于球体的正确答案。因为(除了奇数的情况)如果中心(A和B)是分开的,那么从A到B将有一个长度为d的测地线。如果我们沿着测地线朝B走一段距离r(围绕a的圆的半径),我们将到达圆上的点a,同样地(从B到a的距离s朝a),我们到达围绕B的圆上的点B。从a到B的测地线也是从a到B的测地线,沿着它的距离是d-r-s。从a到b的距离是d-r-s。圆上不可能有点(a',b',比如说)比那更靠近,因为如果有,我们可以从a到b,沿着测地线从a'到b',然后从b到b;但是从A到B的测地线是最短的路线。

假设这两个区域“足够近”,这样就可以忽略问题的球面性质,以及

假设这些“置信域”对结果的用户来说很重要,还有

由于单个数字会消除信息的不确定性(或测量误差),我建议不要期望一个数字,而是一个间隔是一个足够的结果

设p1、p2为区域R1、R2的两个“足够接近”的中心。
设u1,u2为测量p1,p2的距离单位内的位置不确定度,作为这些圆的半径

中心距:
dc p1 p2=| p2-p1|

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

最大边界距离:
bdmax p1 p2 u1 u2=(直流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间隔:(7.142135624,21.14213562)
与中心的间隔:(7.142135624、14.14213562、21.14213562)

后一个版本很好,因为它允许用户继续他们喜欢的,有所有的3个值,也能够得到一个准确性的感觉

讨论:

如果真实数据看起来像图片上的数据,那么采用球面几何公式进行计算是没有好处的。其原因是,这些圆的大小比euklidean几何学产生的误差大很多

另一方面,如果真实数据的距离非常大,那么计算时是否取圆心或圆的边缘可能无关紧要。那时,与距离相比,圆的半径将很小。然后,虽然,球面几何是必要的

最后同样重要的是,如果这只是一系列较长计算中的一个步骤,那么保持准确信息是值得的

例如,见

如果将U1、U2视为统计参数,例如n%置信区间(想想标准偏差),那么可以尝试找到一个统计模型,并对其进行解释

预热,如果我们假设P1和P2都是来自相同统计分布的测量点,它们显然不是。那么,两个点的方差将是相同的。显然情况并非如此。然后,给定一系列P1,P2对,您可以估计潜在分布,并使用类似于t检验的方法来检验假设P1=P2

现在,在GPS外行术语中,你的U1,U2可能被称为“精度稀释”(DOP,有些使用2,实际上是HDOP,VDOP),这是一个单一的数字,聚集了GPS定位计算的不确定性。它是许多参数的函数,GPS接收器实际上可以注意到:

  • 用于修复的可见和已用卫星数
  • 时间精度估计