Я пытаюсь вычислить угол между двумя широтами и долготами, но получаю неправильный результат atan2(X,Y) при использовании в Excel.

β = atan2(X,Y) = atan2(0.05967668696, -0.00681261948)

Он должен быть 1,68 рад (96,51 °), но в Excel он показывает -0,113666736 (-6,512624235 °)

β = atan2(X,Y),

где X и Y две величины и могут быть рассчитаны как:

  • X = cos θb * sin ∆L
  • Y = cos θa * sin θb – sin θa * cos θb * cos ∆L

    Широта / Долгота (1): (Lat1, Lon1)= 39,099912, -94,581213

    Широта / Долгота (2): (Lat2, Lon2)= 38,627089, -90.200203

    ‘L’            be the longitude,
    ‘∆L=lon2-lon1’ be the difference of longitude,
    ‘θ’            be latitude,
    ‘β‘            be Bearing
    

1 ответ1

0
  1. В функции atan2(X,Y) в Excel нет ничего плохого: указанная вами точка (0.05967668696, -0.00681261948) находится в четвертом квадранте, т.е. ее угол действительно равен -6.51 °.

  2. Но если вы хотите рассчитать «абсолютное» значение угла между двумя географическими точками, вам следует использовать и абсолютную разницу между координатами:

      β=ATAN2(ABS(0.05967668696), ABS(-0.00681261948))
    
  3. Имейте в виду, что если это вычисление для сферы (Земли), оно является приближением из-за кругового треугольника. Это нормально для небольших углов.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .