Як обчислити відстань повітряної лінії між двома місцями?


17

Багато часу я шукаю спосіб обчислити відстань повітряної лінії між двома місцями, найчастіше центрами міста.

Наприклад, коли я летів із Цюріха до Гельсінкі, я хотів дізнатися, наскільки це далеко. За допомогою Карт Google я можу це зробити, але не на відстані повітряної лінії.

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


1
Чи має значення відстань повітряної лінії під час подорожі між двома невеликими аеропортами лише через віддалений вузол?
mouviciel

1
Очевидно, ні ...
RoflcoptrException

3
Незначна думка: чи повинні менші літаки перебувати на певній відстані суші у разі несправності двигуна? Я думав, що бачив сайт, який так говорив. Якщо так, велика відстань кола не завжди буде точною.
barrycarter

@barrycarter: Літаки будуть відхилятися від найкоротшого шляху з будь-яких причин, таких як уникнення штормів та використання реактивного потоку для швидшого руху. Тому навіть не можна завжди знати заздалегідь.
Майкл Боргвардт

Ви вже отримали вичерпну відповідь, тож зараз це спір, але "повітряна лінія", мабуть, породила плутанину. Я підозрюю, що ви мали на увазі Luftlinie , і в цьому випадку "пряма лінія", "білайн" або "як ворона летить" були б більш ідіоматичними способами викласти це англійською мовою.
Розслаблено

Відповіді:


18

Найкраще місце для цих розрахунків - веб-сайт "Великий круговий картограф".

http://www.gcmap.com/

Щоб знайти відстань між двома або більше аеропортами, просто введіть їх з тире між ними. наприклад, JFK-DFW або SFO-IAD-LHR

Ви можете зробити кілька поїздок одночасно, розділивши їх комами. JKF-DFW, SFO-IAD-LHR


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

Зауважте це в Регламенті ЄС про затримку / скасування польоту (ЄС) № 261/2004: "Відстані, наведені в пунктах 1 і 2, повинні вимірюватися методом маршруту великого кола".
chx

13

З усіма реплікантами, які рекомендують математику Great Circle, ви лише частково праві.

Відстань між двома точками на кулі знаходить GC Maths, проте ОП спеціально попросила відстань повітряної лінії. Це з’ясовується, спочатку знаходячи всі пункти, відвідані на маршруті до пункту призначення, а потім обчислюючи відстані GC для всіх пар маршруту.

Наприклад, політ з Лондона до Нью-Йорка не йде за великим круговим шляхом між двома точками. Звідси випливає набір точок, який може включати Navaids, Waypoints, Airways, маршрути відправлення, маршрути прибуття, lat / long fixs та точки опорних відстаней. див. План польоту для отримання додаткової інформації.

Тож вам потрібно буде зв’язатись із авіакомпанією, яка займається, та запитати про використаний план польоту, а також знайти відстань для кожного з відвідуваних пунктів.


Це саме те, що я думав!
Ankur Banerjee

1
Я вважаю, що ОП насправді запитує про велику відстань в колі, "повітряна лінія" стоїть тут німецькою "Luftlinie" і не має нічого спільного з "авіакомпаніями".
Розслаблено

11

Багато авіакомпаній включають цю інформацію у свої розклади. Наприклад, Air Canada дозволяє завантажити PDF-файл їхнього цілого розкладу. Ось кліп із нього:

введіть тут опис зображення

Я пропоную шукати веб-сайт авіакомпанії, яку ви плануєте використовувати. Будь-який інструмент, заснований на тому, наскільки насправді відстають міста, може на 20-30 миль відрізнятися від відстані авіакомпанії.


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

7

Якщо ви хочете обчислити його самостійно, то сферичний закон косинусів - це, мабуть, найпростіший шлях для цього. Це, ймовірно, буде досить точним для ваших потреб, і це дійсно просто. Якщо ви хочете його в python, спробуйте цей мій код (ви хочете calculate_distance_and_bearing)

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


5

Якщо ви хочете зробити цей розрахунок для польотів, вам доведеться використовувати сферичний закон косинусів, як згадував Гаграварр. Однак якщо ви хочете написати свій маленький інструмент і хочете побудувати лінію на карті, то це стає трохи хитро. Вам доведеться використовувати карту проекції Ламберта, щоб намалювати на ній пряму лінію від А до В. Проблема конформної конічної проекції Ламберта полягає в тому, що ці карти точні лише вздовж двох опорних паралелей, і чим далі ви відходите від них, тим менш точними вони є. Зазвичай це не так і видавати на невеликих картах, які охоплюють лише 100х100 км, але чим більша карта, тим більша межа помилок. Це має відношення до того, що земля кругла, і ви не можете зробити точне зіставлення 1: 1 з круглої на плоску поверхню.

Карти Google (і всі морські карти) використовують проекцію циліндричної карти , це означає, що вам доведеться намалювати криві на карті, щоб отримати той самий маршрут, як і з прямою лінією на проекції Ламберта.




3

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


2

Дивіться тут: http://www.movable-type.co.uk/scripts/latlong.html

var R = 6371; // Earth's average radius in km
var dLat = (lat2-lat1).toRad();
var dLon = (lon2-lon1).toRad();
var lat1 = lat1.toRad();
var lat2 = lat2.toRad();

var a = Math.sin(dLat/2) * Math.sin(dLat/2) +
        Math.sin(dLon/2) * Math.sin(dLon/2) * Math.cos(lat1) * Math.cos(lat2); 
var c = 2 * Math.atan2(Math.sqrt(a), Math.sqrt(1-a)); 
var d = R * c;


Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.