¿Cómo calcular la distancia de la línea aérea entre dos lugares?


17

Muchas veces, estoy buscando una manera de calcular la distancia de la línea aérea entre dos lugares, con mayor frecuencia centros urbanos.

Por ejemplo, cuando volé de Zúrich a Helsinki, quería saber qué tan lejos estaba. Con Google Maps puedo hacerlo, pero no para la distancia de la línea aérea.

Entonces, ¿alguien conoce una herramienta para hacer esto o me puede dar consejos sobre cómo hacerlo manualmente usando las coordenadas geográficas? Entonces podría escribir mi propia pequeña herramienta.


1
¿Tiene sentido la distancia en línea aérea cuando se viaja entre dos aeropuertos pequeños solo a través de un centro distante?
Mouviciel

1
Obviamente no ...
RoflcoptrException

3
Pensamiento menor: ¿los aviones más pequeños tienen que permanecer dentro de una cierta distancia de tierra en caso de falla del motor? Pensé que vi un sitio que lo decía. Si es así, la gran distancia del círculo no siempre sería precisa.
barrycarter

@barrycarter: los aviones se desviarán del camino más corto por todo tipo de razones, como evitar tormentas y usar la corriente en chorro para ir más rápido. Por lo tanto, ni siquiera es posible saberlo siempre con anticipación.
Michael Borgwardt

Ya ha recibido una respuesta integral, por lo que ahora es discutible, pero la "línea aérea" aparentemente generó cierta confusión. Sospecho que te referías a Luftlinie , en cuyo caso "línea recta", "línea recta" o "en línea recta" serían formas más idiomáticas de ponerlo en inglés.
Relajado

Respuestas:


18

El mejor lugar para estos cálculos es el sitio web "Great Circle Mapper".

http://www.gcmap.com/

Para encontrar la distancia entre dos o más aeropuertos, simplemente ingréselos con guiones entre ellos. por ejemplo, JFK-DFW o SFO-IAD-LHR

Puede hacer varios viajes a la vez separándolos con comas. JKF-DFW, SFO-IAD-LHR


Tenga en cuenta que estos valores son un límite inferior en la distancia real que viajará un avión entre los aeropuertos.
ESultanik

Tenga en cuenta esto en el Reglamento de la UE sobre retraso / cancelación de vuelo (CE) no 261/2004: "Las distancias indicadas en los párrafos 1 y 2 se medirán por el método de la ruta del gran círculo".
chx

13

Para todos los que responden que recomiendan las matemáticas del Gran Círculo, tienes razón en parte.

GC Maths encuentra la distancia entre dos puntos en una esfera, sin embargo, el OP solicitó específicamente la distancia de la línea aérea. Esto se encuentra al encontrar primero todos los puntos visitados en ruta hacia el destino y luego calcular las distancias GC para todos los pares de rutas.

Por ejemplo, un vuelo de Londres a Nueva York no sigue el camino del gran círculo entre los dos puntos. Sigue un conjunto de puntos, que pueden incluir elementos de navegación, puntos de referencia, vías aéreas, rutas de salida, rutas de llegada, correcciones de lat / long y puntos de apoyo de alcance. ver Plan de vuelo para más información.

Por lo tanto, deberá ponerse en contacto con la aerolínea involucrada y preguntar amablemente por el plan de vuelo utilizado, y encontrar los lat largos para cada uno de los puntos visitados.


¡Esto es exactamente lo que estaba pensando!
Ankur Banerjee

1
Creo que el OP realmente está preguntando acerca de la gran distancia del círculo, "línea aérea" significa aquí la "Luftlinie" alemana y no tiene nada que ver con las "líneas aéreas".
Relajado

11

Muchas aerolíneas incluyen esta información en sus horarios. Por ejemplo, Air Canada le permite descargar un PDF de toda su programación. Aquí hay un clip de él:

ingrese la descripción de la imagen aquí

Sugiero buscar en el sitio web de la aerolínea que desea utilizar. Cualquier herramienta basada en la distancia real de las ciudades puede ser tan diferente como 20-30 millas de la distancia de la aerolínea.


Las distancias en los catálogos (para millas de viajero frecuente, etc.) suelen ser las mismas distancias óptimas de gran círculo proporcionadas por GCMap. Las distancias reales varían de un día a otro según los vientos, el control del tráfico aéreo, etc.
lambshaanxy

7

Si desea calcularlo usted mismo, entonces la ley esférica del coseno es probablemente la forma más fácil de hacerlo. Es probable que sea lo suficientemente preciso para sus necesidades, y es realmente simple. Si lo quieres en Python, prueba este código mío (te gustaría calculate_distance_and_bearing)

Probablemente también desee la información de ubicación de los distintos aeropuertos de interés. He tendido a usar The Global Airport Database en el pasado para este tipo de cosas.


5

Si desea hacer este cálculo para vuelos, tendría que usar la ley esférica de cosenos como mencionó Gagravarr. Sin embargo, si desea escribir su propia herramienta pequeña y quiere trazar una línea en un mapa, entonces se vuelve un poco complicado. Tendría que usar un mapa de proyección de Lambert para dibujar una línea recta de A a B en él. El problema con la proyección cónica conforme de Lambert es que esos mapas solo son precisos a lo largo de los dos paralelos de referencia, y cuanto más se aleje de ellos, menos precisos serán. Esto generalmente no es así y se emite en mapas pequeños que solo cubren 100x100km, pero cuanto más grande es el mapa, mayor es el margen de error. Esto tiene algo que ver con el hecho de que la tierra es redonda, y no se puede hacer un mapeo exacto 1: 1 de una superficie redonda a una plana.

Los mapas de Google (y todos los mapas náuticos) usan una proyección de Mapa cilíndrico , esto significa que tendría que dibujar curvas en el mapa para obtener la misma ruta que lo haría con una línea recta en una proyección de Lambert.




3

Además de las opciones ya mencionadas, milecalc.com también realizará este cálculo, utilizando la distancia del Gran Círculo, que es el valor típicamente utilizado para el cálculo del millaje de viajero frecuente, etc.


2

Ver aquí: 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;


Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.