Найти тему

Как вычислить расстояние между двумя точками, зная только их географические координаты?

Оглавление

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

Итак, задача: вычислить расстояние между двумя городами. Известно только одно – географические координаты, то есть широта и долгота. Посмотрим эти данные в справочнике, ну или в Википедии.

Итак, что нам известно: координаты Москвы:

55,7522 град. с.ш., 37.6156 град. в.д.

Координаты Петербурга:

59,89444 град. с.ш., 30,26417 град. в.д.

Построим с помощью Excel трапецию:

Рисунок 1.
Рисунок 1.

Итак, у нас есть трапеция ABCD. На ней точка D – это Москва, точка B – это Петербург. Отрезок AB проходит по меридиану Петербурга, BC – по параллели Петербурга, CD – по меридиану Москвы и AD – по параллели Москвы.

Что нам известно? Во-первых известны все географические координаты каждой из точек:

A: 55,7522, 30,26417;

B: 59,89444, 30,26417;

C: 59,89444, 37,6156;

D: 55,7522, 37,6156.

Вычислить AB и CD достаточно просто. На меридианах в градусе примерно одинаковое число километров. Это расстояние можно взять из справочных данных, и оно составляет примерно 111,1 км в каждом градусе.

Нужная нам разница в градусах – это 59,89444-55,7522, или 4,14224. А это значит, что разница в километрах – это 4,14224*111,1=460,2029 км.

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

Итак, с помощью Excel вычислим нужные нам косинусы:

  • cos(55.7522) = 0,562773
  • cos(59.89444) = 0,501595

Это значит, что 1 градус в верхнем основании нашей трапеции =111,3*0,501595=55,82749 км, а один градус в нижнем основании трапеции =111,3*0,562773=62,6366 км. Поскольку число градусов одинаково как в верхнем, так и в нижнем основаниях трапеции и составляет 37,6156-30,26417, то есть 7,35143 градуса. Но число километров в верхнем и нижнем основаниях трапеции не одинаковое.

Рассчитаем эти расстояния в километрах. BC=7,35143*55,82749=410,4119 км.

AD=7,35143*62,6366=460,469 км.

Теперь проведем высоту BH в нашей трапеции:

Рисунок 2.
Рисунок 2.

В прямоугольном треугольнике ABH нам известно, что гипотенуза равна 460,2029 км, малый катет тоже известен (это половина разницы между длинами оснований трапеции, то есть 0,5*[460,469-410,4119], то есть 0,5*50,05711, или 25,02856 км).

Итак, найдем высоту трапеции ABCD, ее можно вычислить с помощью теоремы Пифагора. Напомню, что мы знаем и длину гипотенузы, и длину наименьшего из катетов.

  • Квадрат гипотенузы: 211786,7
  • Квадрат известного катета: 626,4
  • Разность между этими числами: 211160,2

Корень из этой разности – 459,5218 км. Это и есть наша высота трапеции, то есть BH.

Задача почти решена. Для нахождения расстояния между Москвой и Питером нам нужно вычислить диагональ трапеции, то есть BD. Нарисуем эту линию:

Рисунок 3.
Рисунок 3.

Итак, у нас есть треугольник BHD. BH мы только что вычислили (459,5218 км), HD тоже известно (нужно от большего основания трапеции отнять AH. 460,469-25,02856=435,4404).

Два катета известны, нужно найти гипотенузу. По той же теореме Пифагора, и мы увидим, что гипотенуза будет равна 633,0629 км. Это и есть расстояние от Питера до Москвы.

Проверим наши вычисления, спросив у Яндекса, сколько составляет расстояние от Питера до Москвы.

Рисунок 4.
Рисунок 4.

Мы увидим ответ – 634 км. При вычислениях по нашей методике получилось чуть больше, чем 633 км. Это значит, что погрешность при данном виде вычислений достаточна мала. Но если учесть, что крупные города - это не маленькие точки, а большие расстояния с севера на юг и с запада на восток, то можно сказать, что мы вычислили все правильно.

А на этом пока всё, подписывайтесь на мой канал и до новых встреч!