2

我想获得有关如何计算地球上两个地理坐标之间的欧几里得距离和相对于真北的航向角的公式。比如说从纽约到新德里,我在地球上画了一条直线——因为它们是空间中的两个点。如果我要在地球表面画一条直线,我如何计算从纽约到新德里的角度。为了做到这一点,将涉及什么样的数学计算/公式?

4

1 回答 1

1

大拇指线导航

恒向线或等角线是恒定真实航向的轨迹。除了经络和赤道外,它们与大圆不同。它们在接近任一极时都不是很有用,在那里它们会变成紧密缠绕的螺旋。如果任何点实际上是极点,则以下公式将失败。

东西方恒向线很特别。它们遵循纬度平行线并形成闭合曲线。其他恒向线从极到极延伸,无限次环绕每个极。尽管如此,它们具有由 pi/abs(cos(tc)) 给出的有限长度(在我们的角度单位中,乘以地球的半径以获得距离单位)。

当两点 (lat1,lon1), (lat2,lon2) 由具有真实航向 tc 的恒向线连接时:

 lon2-lon1=-tan(tc)*(log((1+sin(lat2))/cos(lat2))-
                     log((1+sin(lat1))/cos(lat1))) 
          =-tan(tc)*(log((1+tan(lat2/2))/(1-tan(lat2/2)))-
                     log((1+tan(lat1/2))/(1-tan(lat1/2))))
          =-tan(tc)*(log(tan(lat2/2+pi/4)/tan(lat1/2+pi/4)))

(对数是以 e 为底的“自然”对数。)

点之间的真实路线由下式给出:

tc= mod(atan2(lon1-lon2,log(tan(lat2/2+pi/4)/tan(lat1/2+pi/4))),2*pi) 点之间的距离,d 由下式给出:

     if (abs(lat2-lat1) < sqrt(TOL)){
         q=cos(lat1)
     } else {
         q= (lat2-lat1)/log(tan(lat2/2+pi/4)/tan(lat1/2+pi/4))
     }
     d=sqrt((lat2-lat1)^2+ q^2*(lon2-lon1)^2)

如果所讨论的恒向线穿过 180 E/W 子午线,则此公式将失败。考虑到这种可能性,连接两点的最短恒向线的真实航向 tc 和距离 d 由下式给出:

dlon_W=mod(lon2-lon1,2*pi)
  dlon_E=mod(lon1-lon2,2*pi)
  dphi=log(tan(lat2/2+pi/4)/tan(lat1/2+pi/4))
  if (abs(lat2-lat1) < sqrt(TOL)){
     q=cos(lat1)
  } else {
     q= (lat2-lat1)/dphi
  }
  if (dlon_W < dlon_E){// Westerly rhumb line is the shortest
      tc=mod(atan2(-dlon_W,dphi),2*pi)
      d= sqrt(q^2*dlon_W^2 + (lat2-lat1)^2)
  } else{
      tc=mod(atan2(dlon_E,dphi),2*pi)
      d= sqrt(q^2*dlon_E^2 + (lat2-lat1)^2)
      }

http://williams.best.vwh.net/avform.htm#Rhumb

于 2013-03-19T00:42:18.633 回答