Расчет азимута по географическим координатам

Выполняет расчёт движения по кратчайшему расстоянию (ортодромия, "дуга большого круга"), азимут который тут считается — это не то же самое, что при движении по одному курсу (локсодромии), но разница обычно несущественная. Положительные числа означают северную широту и восточную долготу, а отрицательные — южную широту и западную долготу.

Формат координат №1 (градусы):

Формат координат №2 (градусы, минуты, секунды):

Путь из точки А (0°;0°) в точку Б (0°;0°):

Расстояние 0.000 км 0
Азимут 90.000° 90

Вычисление расстояния по локсодроме (линии румба) и путевого угла (азимута) между двумя точками, заданными двумя географическими координатами.

В 16 веке фламандский географ Герхард Меркатор составил навигационную карту мира, изобразив поверхность Земли на плоскости таким образом, чтобы углы на карте не искажались. В настоящее время такой способ изображения Земли известен, как равноугольная цилиндрическая проекция Меркатора. Такая карта была очень удобна для мореплавателей, так как для того чтобы прийти из точки А в точку Б на карте Меркатора достаточно провести прямую линию между этими точками, замерить ее угол к меридиану и постоянно придерживаться этого направления, например используя секстант и полярную звезду в качестве ориентира или магнитный компас. (На самом деле с компасом не так все просто, так как он не всегда показывает на истинный север, но об этом как-нибудь в другой раз). Проекция Меркатора до сих пор широко применяется для составления навигационных карт.
Однако, еще древние мореплаватели начинали замечать, что линия румба не всегда является кратчайшим путем между двумя точками, особенно, это становилось заметно для дальних переходов. Если провести на глобусе линию, пересекающую все меридианы под одним и тем же углом, то станет понятно, отчего это происходит. Прямая линия на карте Меркатора превращается на глобусе в бесконечно закручивающуюся к полюсам спираль. Такую линию в современной науке принято называть греческим словом локсодромия, что означает «косой бег».
Следующий далее калькулятор вычисляет путевой угол и расстояние трансатлантического перехода из Лас Пальмаса (Испания) в Бриджтаун (Барбадос) по локсодромии. Полученное расстояние на десятки километров отличается от кратчайшего пути (см.Расстояние между двумя координатами).

Читайте также  Разница между числами это

Измерение расстояния и начального азимута между точками без проекционных преобразований

Содержание

Введение

Длина дуги большого круга – кратчайшее расстояние между любыми двумя точками находящимися на поверхности сферы, измеренное вдоль линии соединяющей эти две точки (такая линия носит название ортодромии) и проходящей по поверхности сферы или другой поверхности вращения. Сферическая геометрия отличается от обычной Эвклидовой и уравнения расстояния также принимают другую форму. В Эвклидовой геометрии, кратчайшее расстояние между двумя точками – прямая линия. На сфере, прямых линий не бывает. Эти линии на сфере являются частью больших кругов – окружностей, центры которых совпадают с центром сферы.

Начальный азимут — азимут, взяв который при начале движения из точки А, следуя по большому кругу на кратчайшее расстояние до точки B, конечной точкой будет точка B. При движении из точки A в точку B по линии большого круга азимут из текущего положения на конечную точку B постоянно меняется. Начальный азимут [angles-rhumb.html отличен от постоянного], следуя которому, азимут из текущей точки на конечную не меняется, но маршрут следования не является кратчайшим расстоянием между двумя точками.

Через любые две точки на поверхности сферы, если они не прямо противоположны друг другу (то есть не являются антиподами), можно провести уникальный большой круг. Две точки, разделяют большой круг на две дуги. Длина короткой дуги – кратчайшее расстояние между двумя точками. Между двумя точками-антиподами можно провести бесконечное количество больших кругов, но расстояние между ними будет одинаково на любом круге и равно половине окружности круга, или pi*R, где R – радиус сферы.

На плоскости (в прямоугольной системе координат), большие круги и их фрагменты, как было упомянуто выше, представляют собой дуги во всех проекциях, кроме гномонической, где большие круги — прямые линии. На практике это означает, что самолеты и другой авиатранспорт всегда использует маршрут минимального расстояния между точками для экономии топлива, то есть полет осуществляется по расстоянию большого круга, на плоскости это выглядит как дуга.

Читайте также  Проверить стоимость короткого номера

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

Вычисление расстояния этим методом более эффективно и во многих случаях более точно, чем вычисление его для спроектированных координат (в прямоугольных системах координат), поскольку, во-первых, для этого не надо переводить географические координаты в прямоугольную систему координат (осуществлять проекционные преобразования) и, во-вторых, многие проекции, если неправильно выбраны, могу привести к значительным искажениям длин в силу особенностей проекционных искажений.

Известно, что более точно описывает форму Земли не сфера, а эллипсоид, однако в данной статье рассматривается вычисление расстояний именно на сфере, для вычислений используется сфера радиусом 6372795 метров, что может привести к ошибке вычисления расстояний порядка 0.5%.

Формулы

Существует три способа расчета сферического расстояния большого круга (подробнее).

Сферическая теорема косинусов

В случае маленьких расстояний и небольшой разрядности вычисления (количество знаков после запятой), использование формулы может приводить к значительным ошибкам связанным с округлением. Графическое изображение формул здесь и далее — из Википедии.

— широта и долгота двух точек в радианах

— разница координат по долготе

— угловая разница

Для перевода углового расстояния в метрическое, нужно угловую разницу умножить на радиус Земли (6372795 метров), единицы конечного расстояния будут равны единицам, в которых выражен радиус (в данном случае — метры).

Формула гаверсинусов

Используется, чтобы избежать проблем с небольшими расстояниями.

Модификация для антиподов

Предыдущая формула также подвержена проблеме точек-антиподов, чтобы ее решить используется следующая ее модификация.

Реализация на Avenue

На языке Avenue, используя последнюю формулу для вычисления расстояния большого круга между двумя точками, можно использовать следующий код. Точки для вычисления передаются другим скриптом, либо добавляются в начало данного в виде pnt = point.make(long, lat) (скачать скрипт):

Читайте также  Служба apple mobile device не запущена

Для вызова процедуры расчета длин приведенной выше, можно также воспользоваться следующим скриптом, результатом его работы будет расчет длин между точкой testpont до всех точек активной темы вида и запись результата в поле Newdist атрибутивной таблицы этой темы:

Реализация на языке Python

Реализует полный вариант расчета через atan2(), более универсальнее, чем вариант для Avenue. (скачать скрипт)

Реализация в Excel

Скачать пример расчета расстояния большого круга и начального азимута в Excel. Демонстрирует расчеты через закон косинусов, гаверсинус, полное уравнение и полное уравнение через atan2().

Можно также воспользоваться следующей функцией:

Проверочный набор данных

Если все считается правильно, должны быть получены следующие результаты (координаты точек даны как широта/долгота, расстояние в метрах, начальный угол в десятичных градусах):

Ссылка на основную публикацию
Adblock
detector