Як визначити відстань між двома точками, заданими координатами GPS?



+3 +/-

Приклад: є 2 точки, зняті за допомогою GPS-навігатора (або з карти Google), наприклад:

  1. 55.755801,37.617887 (Знак 0-й кілометр в Москві)
  2. 55.760772,37.60976 (Центральний телеграф, від якого раніше вимірювалися все відстані з Москви)

Яка відстань між цими точками?

(* В даній задачі кривизною і еліпсоїдними Землі можна знехтувати, і вважати радіус Землі - 6400 км або 6360 км - для більш точний вимірювань *).

Профіль користувача Resentless Запитав: Resentless  (рейтинг 23919) Категорія: Технології

Відповідей: 2

2 +/-

Якщо є під рукою карта Google, то відстань між двома точками із заданими координатами можна визначити за допомогою інструменту лінійка.

Якщо цей інструмент не включений, його необхідно включити в лабораторії карт (В лівому нижньому куті).

Координати можна нанести на карту або через вікно Пошук, або через завдання Маршруту.


Найкоротшим відстанню між двома точками на сфері є довжина дуги великого кола (Кола, що проходить через ці дві точки і центр сфери). Ця дуга називається ортодромії (Мається на увазі найменша з двох дуг великого кола).

Найкоротша відстань або довжина ортодромії визначається формулою:

L = R x Y

де R - Радіус сфери,

Y - Центральний кут в радіанах.

або

L = ПR x A / 180 град.

де A - центральний кут в градусах (п - "пі").

нехай x1, y1 і x2, y2 - широта і довгота двох точок. Тоді центральний кут буде визначатися сферичним законом косинусів:

Y = arccos (sin x1 sin x2 + cos x1 cos x2 cos (y2 - y1))

Слід зауважити, що при обчисленнях з невисокою точністю (а тим більше на калькуляторі) за цією формулою особливо при невеликих відстанях між точками, точність результату буде дуже невисока, оскільки центральний кут буде 0,99999999. (На 64-розрядних комп'ютерах точність може досягати декількох метрів на кілометр.)

Тому для практичних цілей застосовувалися інші формули з використанням синус-верзусов (звернених синусів), які зіграли важливу роль у навігації.

У наступній формулі використаний haversine (Haversin, гаверсінус) - квадрат синуса половинного кута.

де змінні: найкоротша відстань, радіус сфери, широта і довгота точок відповідно.

Формула гаверсінусов добре працює при порівняно невеликих відстанях, але має проблему для антиподів. Формула через арктангенс усуває цю проблему. Центральний кут дорівнює:


Для розрахунку відстані між двома точками по GPS-координат можна написати нескладну програму. Ось тут можна "пограти" з програмою на JavaScript.

Для координат, наведених в питанні: L = 751 м. (Ця цифра непогано сходиться з результатом, отриманим лінійкою в картах Google).


скрипти: JavaScript, Python

Відповів на питання: Mihaela  
0 +/-

Наскільки я знаю, 1 хвилина відповідає відстані в 1 морську милю (1852 м). Відповідно, 1 градус дасть 60 миль або 111,12 км, а 1 секунда - близько 31 метра. У вашому випадку відстань виявляється 1058 метрів.

Відповів на питання: Defial