Как найти угол курса между двумя точками на Земле - прямо через Землю, как если бы они были двумя точками в Пустом пространстве?

Я хотел бы получить формулу о том, как рассчитать евклидово расстояние между двумя географическими координатами на земле и углом курса относительно истинного севера. Скажем, от Нью-Йорка до Нью-Дели я рисую прямую линию через ЗЕМЛЮ - так как они были двумя точками в пространстве. Как я могу рассчитать этот угол, скажем, от Нью-Йорка до Нью-Дели, если бы мне пришлось рисовать прямую линию через поверхность земли. Какой математический расчет / формула будет использоваться для этого?

1 ответ

Решение

Rhumb Line Navigation

Прямоугольные линии или локсодромы являются следами постоянного истинного хода. За исключением меридианов и экватора, они не совпадают с большими кругами. Они не очень полезны, приближаясь к любому полюсу, где они становятся плотно намотанными спиралями. Приведенные ниже формулы не работают, если любая точка на самом деле является полюсом.

Узловатые линии восток-запад особенные. Они следуют параллелям широты и образуют замкнутую кривую. Другие линии окаймления проходят от полюса к полюсу, окружая каждый полюс бесконечное число раз. Несмотря на это, они имеют конечную длину, заданную как 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)))

(журналы являются "натуральными" логарифмами к основанию е.)

Истинный курс между точками определяется как:

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

Другие вопросы по тегам