Сторінки

понеділок, 14 жовтня 2024 р.

Знайти відстань між двома містами за GPS координатами в Python

 

Пояснення:

  1. Формула Гаверсина: Використовується для обчислення відстані між двома точками на поверхні сфери. Враховує кривизну Землі.
  2. Координати міст: Широта та довгота обох міст вводяться користувачем.
  3. Радіус Землі: Встановлюється на 6371 км, що є стандартним значенням для обчислень.


Як використовувати:

  • При запуску програма запросить широту і довготу двох міст.
  • Програма обчислить і виведе відстань між цими містами в кілометрах.

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


Формула Гаверсина використовується для обчислення відстані між двома точками на сфері (в нашому випадку на поверхні Землі), виходячи з їх географічних координат — широти та довготи.

Як працює формула?

Відстань між двома точками на сфері визначається як частина великого кола (коло, яке проходить через центр сфери), що сполучає ці точки. Формула Гаверсина обчислює цю відстань, враховуючи сферичну геометрію Землі.

Сферична модель Землі

Земля приблизно є сферою, і для обчислення відстаней на поверхні використовуються сферичні координати:

  • Широта (latitude) — кут від 0° до 90° на північ або на південь від екватора.
  • Довгота (longitude) — кут від 0° до 180° на схід або захід від нульового меридіана (Грінвіч).

Формула Гаверсина працює на основі радіусів Землі та кутової відстані між двома точками.

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

Вона має такий вигляд:

a=sin2(Δφ2)+cos(φ1)cos(φ2)sin2(Δλ2)a = \sin^2\left(\frac{\Delta \varphi}{2}\right) + \cos(\varphi_1) \cdot \cos(\varphi_2) \cdot \sin^2\left(\frac{\Delta \lambda}{2}\right) c=2atan2(a,1a)c = 2 \cdot \text{atan2}(\sqrt{a}, \sqrt{1-a})

  • φ1\varphi_1 і φ2\varphi_2 — широти першої і другої точок (у радіанах),
  • λ1\lambda_1 і λ2\lambda_2 — довготи першої і другої точок (у радіанах),
  • Δφ=φ2φ1\Delta \varphi = \varphi_2 - \varphi_1 — різниця широт,
  • Δλ=λ2λ1\Delta \lambda = \lambda_2 - \lambda_1 — різниця довгот,
  • RR — радіус Землі (приблизно 6371 км),
  • dd — відстань між двома точками.

Завдання:

Знайти відстань між вашим містом і містами:

  1. Лондон, Велика Британія
  2. Париж, Франція
  3. Рим, Італія
  4. Берлін, Німеччина
  5. Токіо, Японія
  6. Нью-Йорк, США
  7. Лос-Анджелес, США
  8. Чикаго, США
  9. Сан-Франциско, США
  10. Барселона, Іспанія

Немає коментарів:

Дописати коментар