【问题标题】:How to find a point in the Earth surface given an origin point, distance and direction (azimuth)如何在给定原点、距离和方向(方位角)的情况下在地球表面找到一个点
【发布时间】:2009-06-19 19:22:16
【问题描述】:

上一个问题"Geoalgorithm for finding coordinates of point from a known location by distance and bearing" 提出了同样的问题,但找到的解决方案是一个粗略的近似值。我想要一个更准确的解决方案。我将结果与Great Circle Distance 公式进行比较,这是已知的最好的Geographical Distance 公式之一。

【问题讨论】:

    标签: geometry geospatial


    【解决方案1】:

    这是迄今为止我见过的最好的公式,来自http://www.movable-type.co.uk/scripts/latlong-vincenty-direct.html

    a, b = major & minor semiaxes of the ellipsoid   
    f = flattening (a−b)/a   
    φ1, φ2 = geodetic latitude   
    s = length of the geodesic   
    α1, α2 = azimuths of the geodesic (initial/final bearing)    
    
    tanU1 = (1−f).tanφ1 (U is ‘reduced latitude’)    
    cosU1 = 1/√(1+tan²U1), sinU1 = tanU1.cosU1 (trig identities; §6)     
    σ1 = atan2(tanU1, cosα1)    (1)
    sinα = cosU1.sinα1  (2)
    cos²α = 1 − sin²α (trig identity; §6)    
    u² = cos²α.(a²−b²)/b²    
    A = 1+u²/16384.{4096+u².[−768+u².(320−175.u²)]} (3)
    B = u²/1024.{256+u².[−128+u².(74−47.u²)]}   (4)
    
    σ = s / b.A (1st approximation), σ′ = 2π     
    while abs(σ−σ′) > 10-12 { (i.e. 0.06mm)  
            cos2σm = cos(2.σ1 + σ)  (5)
        Δσ = B.sinσ.{cos2σm + B/4.[cosσ.(−1 + 2.cos²2σm) − B/6.cos2σm.(−3 + 4.sin²σ).(−3 + 4.cos²2σm)]} (6)
        σ′ = σ   
        σ = s / b.A + Δσ    (7)
    }        
    φ2 = atan2(sinU1.cosσ + cosU1.sinσ.cosα1, (1−f).√[sin²α + (sinU1.sinσ − cosU1.cosσ.cosα1)²])    (8)
    λ = atan2(sinσ.sinα1, cosU1.cosσ − sinU1.sinσ.cosα1)    (9)
    C = f/16.cos²α.[4+f.(4−3.cos²α)]    (10)
    L = λ − (1−C).f.sinα.{σ+C.sinσ.[cos2σm + C.cosσ.(−1 + 2.cos²2σm)]} (difference in longitude)    (11)
    α2 = atan(sinα, −sinU1.sinσ + cosU1.cosσ.cosα1) (reverse azimuth)   (12)
    p2 = (φ2, λ1+L)
    

    【讨论】:

      【解决方案2】:

      这两点相距多远?我很喜欢使用 Gauss-Kruger 投影,如果这两个点在 100 海里左右的范围内,它就可以正常工作。它的优点是可以让您在局部空间中使用常规三角函数,然后将其转换回大地坐标。

      如果它们比这更远,我会回到大圆,但圆的半径是地球在所需方位上给定点的曲率半径,使用 WGS-84 椭球计算。

      【讨论】:

      • 你确定你的意思是 100nm 吗?不是100公里吗?
      • 我的意思是 100 海里……大约 185 公里。绝对不是纳米! :)
      猜你喜欢
      • 2011-05-30
      • 1970-01-01
      • 2016-01-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-07-15
      • 1970-01-01
      相关资源
      最近更新 更多