Académique Documents
Professionnel Documents
Culture Documents
donde
haversin es la función haversine, haversin ( θ ) = sen 2 ( θ /2) = (1-cos ( θ ))/2
d es la distancia entre dos puntos (sobre un círculo máximo de la esfera,
véase distancia esférica),
R es el radio de la esfera,
φ 1 es la latitud del punto 1,
φ 2 es la latitud del punto 2, y
Δ λ es la diferencia de longitudes
Hay que tener en cuenta que el argumento a la función haversine se supone que debe
darse en radianes. En grados, haversin ( d / R ) de la fórmula se convertiría en haversin
(180 · d /π R ).
Entonces se puede resolver ya sea mediante la simple aplicación de la tabla de haversine
inversa (si está disponible) o mediante el uso de la función arco seno (arco seno) :
Donde h es haversin ( d / R )
Al utilizar estas fórmulas, se debe tener cuidado en asegurarse de que h no exceda 1
debido a un error de coma flotante ( d es sólo real para h de 0 a 1). h sólo se aproxima
a 1 en los puntos antipodales (en los lados opuestos de la esfera) - en esta región, tienden
a surgir en la fórmula errores numéricos relativamente grandes cuando se utiliza una
precisión finita. Sin embargo, ya que "d" es entonces bastante grande (se acerca a π · R ,
la mitad de la circunferencia) un pequeño error a menudo no es una preocupación
importante en este caso inusual (aunque hay otras fórmulas de distancia de círculo
máximo que evitan este problema). (La fórmula anterior se escribe a veces en términos de
la función arcotangente, pero esta adolece de problemas numéricos similares con valores
cerca de h = 1.)
Como se describe a continuación, en lugar de haversines, también se puede escribir una
fórmula similar, en términos del coseno -a veces llamada la ley esférica del coseno -, (a no
confundir con la ley del coseno para la geometría plana), pero para el caso común de
distancias pequeñas ... un pequeño error en los datos de entrada de la función "arccos"
lleva a un gran error en el resultado final. Esto hace que la fórmula no sea apta para un
uso general.
Esta fórmula es sólo una aproximación cuando se aplica a la Tierra, porque la Tierra no es
una esfera perfecta: el radio de la Tierra R varía de 6.356,78 kilómetros en los polos hasta
6378 , 14 kilómetros en el ecuador. Hay pequeñas correcciones, típicamente del orden de
0,1% (p.e. suponiendo la media geométrica R = 6.367,45 kilómetros que se utiliza en todas
partes), a causa de esta ligera forma elipsoidal del planeta. Otro método más preciso, que
tiene en cuenta la forma elipsoidal de la Tierra, viene dada por las fórmulas de Vincenty.
LEY DEL HAVERSINE.-
Dada una esfera unidad, un "triángulo esférico" en la superficie de la esfera se define por
los tres círculos máximos que conectan tres puntos u, v y w sobre la esfera. Si los tres
arcos que definen son: a (de u a v), b (de u a w), y c (de v a w), y el ángulo del vértice
opuesto a c es C , entonces la ley del haversine dice:
(la ley del haversine)
Como se trata de una esfera unitaria, las longitudes a , b y c son simplemente iguales a los
ángulos centrales (en radianes) que los definen a partir del centro de la esfera (para una
esfera no unitaria, cada una de estos arcos es igual a su ángulo central multiplicado por el
radio de la esfera).
Para obtener la fórmula del haversine de la sección anterior de esta ley, simplemente se
considera el caso especial dondeuno es el polo norte, mientras que w y v son los dos
puntos entre los que se quiere determinar la distancia d. En este caso,a y b son π / 2 -
φ 1,2 (es decir, 90° - latitud), C es el incremento de longitud Δλ, y c es la distancia d/R que
se quierecalcular. Tomando nota de que sin (π / 2 - φ) = cos (φ), la fórmula del haversine
se calcula como sigue:
Para deducir la ley del haversine, se parte de la ley esférica de coseno:
(teorema esférico del coseno)
Introduzca las coordenadas en los cuadros de texto para probar los cálculos. Se acepta una
diversidad de formatos, principalmente:
Distancia: 968,9km (a 4 SF *
)
Distancia
Este utiliza el ' haversine fórmula "para calcular la distancia ortodrómica entre dos puntos -
es decir, la distancia más corta sobre la superficie de la tierra - que contenga una distancia"
como-el-cuervo-moscas' entre los puntos (ignorando cualquier colinas que vuelan más, por
supuesto!).
JavaScript: var d = R * C ;
Histórico de lado : La altura de la tecnología para los cálculos del navegador utilizado
para ser ingrese tablas. Como no hay (real) de registro de un número negativo, el
'versine' les permitió mantener las funciones trigonométricas en números
positivos. Además, el sin² (θ / 2) forma de la adición evitado haversine (que implicaba
una búsqueda de anti-registro, la adición, y una búsqueda de
registro). Impresos tablas para el haversine / inversa-haversine (y su logaritmo, para
ayudar multiplicaciones) guardan navegantes de senos cuadratura, el cálculo de raíces
cuadradas, etc - actividades arduas y propenso a errores.
El haversine fórmula 1 'sigue siendo particularmente bien acondicionado para el cálculo
numérico, incluso a pequeñas distancias' - a diferencia de los cálculos basados en la ley de
los cosenos esférica . El '(re) seno verso' es 1-cosθ , y el "medio-versado sine 'es (1-cosθ) /
2 o sin² (θ / 2) tal como se utiliza anteriormente. Una vez ampliamente utilizado por los
navegantes, que fue descrita por Roger Sinnott en Sky & Telescope revista en 1984 (
"virtudes del Haversine"): Sinnott explicó que la separación angular entre Mizar en la Osa
Mayor - 0 ° 11'49.69 "- podía calcularse con precisión en un TRS-80 usando el haversine.
Si atan2no está disponible, c podría calcularse a partir de 2 ⋅ asin (min (1, √ un ))(incluyendo
la protección contra errores de redondeo).
Esto hace más sencilla la ley de los cosenos un 1 línea razonable alternativa a la fórmula
haversine para muchos propósitos geodesia (si no fuera por la astronomía). La elección
puede ser impulsado por lenguaje de programación, el procesador, la codificación de
contexto, funciones trigonométricas disponibles (en diferentes idiomas), etc. - y, por
distancias muy pequeñas equirectangular una aproximación puede ser más adecuado.
Ley de los
cosenos: d = Acos (SIN phi 1 ⋅ pecado φ 2 + cos φ 1 ⋅ cos φ 2 ⋅ cos Δλ) ⋅ R
var φ 1 = Lat1 . toRadians (), φ 2 = Lat2 . toRadians (), Δλ = ( Lon2 - lon1 ).
toRadians (), R = 6371e3 ; // da d en metros var d = Math . acos ( Math .
pecado (φ 1 ) * Matemáticas . pecado (φ 2 ) + Math . cos (φ 1 ) * Matemáticas .
cos (φ 2 ) * Matemáticas . cos (Δλ) ) * R ;
JavaScript:
= ACOS (SIN (Lat1) * SIN (Lat2) + cos (Lat1) * cos (Lat2) * cos
Sobresalir: (Lon2-lon1)) * 6371000
(O con la latitud /
= ACOS (SIN (Lat1 * PI () / 180) * SIN (Lat2 * PI () / 180) + cos
longitud en (Lat1 * PI () / 180) * cos (Lat2 * PI () / 180) * cos (Lon2 * PI () /
grados): 180-lon1 * PI () / 180)) * 6371000
Mientras más simple, la ley de los cosenos es ligeramente más lento que el haversine, en
mis pruebas.
aproximación equirectangular
x = Δλ ⋅ cos m
y = Δφ
Fórmula d = R ⋅ √ x² + y²
var x = (λ 2 -λ 1 ) * Math . cos ((φ 1 + φ 2 ) / 2 ); var y = (φ 2 -φ 1 ); var d = Math
. sqrt ( x * x + y * y ) * R ;
JavaScript:
Este sistema utiliza un solo vértice geodésico y una función de raíz cuadrada - en
comparación con media docena de funciones trigonométricas para el derecho cos, y 7 Trigs +
2 para introducir raıces cuadradas haversine. La precisión es algo compleja: largo de los
meridianos no hay errores, de lo contrario, dependen de la distancia, el rumbo, y la latitud,
pero son lo suficientemente pequeños para muchos propósitos * (y a menudo trivial en
comparación con la propia aproximación esférica).
Como alternativa, la coordenada polar fórmula de la tierra plana se puede utilizar: el uso de
los compañeros de latitudes theta 1 = π / 2-φ 1 y θ 2 = π / 2-φ 2 , entonces d = R ⋅ √ θ 1 ² +
θ 2 ² - 2 ⋅ θ 1 ⋅ θ 2 ⋅ cos Δλ . No he comparado exactitud.
Bagdad a Osaka -
no es un rumbo constante!
Cojinete
En general, el rumbo actual variará a medida que siga un trayecto de círculo
(ortodrómica); el rumbo final será diferente de la partida inicial por diversos grados según la
distancia y latitud (si tuviera que pasar de decir 35 ° N, 45 ° E (≈ Bagdad) a 35 ° N, 135 ° E
(≈ Osaka), se comenzaría en un rumbo de 60 ° y terminan en un rumbo de 120 °!).
Esta fórmula es para el cojinete inicial (a veces conocido como acimut directo), que si se
sigue en línea recta a lo largo de un arco de círculo máximo le llevará desde el punto inicial
hasta el punto final: 1
Fórmula: θ = atan2 (SIN Δλ ⋅ cos 2 , cos 1 ⋅ pecado phi 2 - SIN phi 1 ⋅ cos 2 ⋅ cos Δλ)
φ 1 , λ 1 es el punto de inicio, φ 2 , λ 2 el punto final ( Δλ es la diferencia de
dónde longitud)
var y = Math . pecado (λ 2 -λ 1 ) * Matemáticas . cos (φ 2 ); var x = Math . cos (φ 1 )
JavaScript * Matemáticas . pecado (φ 2 ) - Matemáticas . pecado (φ 1 ) * Matemáticas . cos (φ 2 )
: * Matemáticas . cos (λ 2 -λ 1 ); var método Rumbo = Math . ATAN2 ( Y , x .) toDegrees
();
(todos los
ángulos
en radianes)
Sobresalir: = ATAN2 (COS (Lat1) * SIN (Lat2) -sen (Lat1) * cos (Lat2) * cos (Lon2-
(todos los lon1),
ángulos SIN (Lon2-lon1) * cos (Lat2))
en radianes) * Excel en cuenta que invierte los argumentos para ATAN2 - ver notas abajo
Desde atan2 devuelve valores en el intervalo -π ... + π (es decir, -180 ° ...
+ 180 °), para normalizar el resultado a un rumbo de la brújula (en el
rango de 0 ° ... 360 °, con -ve valores transformados en el rango de 180 °
... 360 °), se convierten en grados y luego usar (θ + 360) 360%, donde%
es (punto de módulo) flotando.
Punto medio
Este es el punto a mitad de camino a lo largo de un trayecto de círculo máximo entre los dos
puntos. 1
B x = cos 2 ⋅ cos Δλ
B y = cos 2 ⋅ pecado Δλ
φ m = atan2 (sen φ 1 + sen φ 2 , √ (cos 1 + B x ) ² + B y ² )
Fórmula: λ m = λ 1 + (B ATAN2 Y , cos (φ 1 ) + B x )
var Bx = Math . cos (φ 2 ) * Matemáticas . cos (λ 2 -λ 1 ); var Por = Math . cos (φ 2
) * Matemáticas . pecado (λ 2 -λ 1 ); var φ 3 = Math . atan2 ( Math . pecado (φ 1 ) +
Matemáticas . pecado (φ 2 ), Math . sqrt ( ( Math . cos (φ 1 ) + Bx ) * ( Math . cos
(φ 1 ) + Bx ) + Por * Al ) ); var lambda 3 = lambda 1 + Matemáticas . ATAN2 ( By ,
JavaScript: Math . cos (φ 1 ) + Bx );
(todos los
ángulos
en radianes)
Al igual que el cojinete inicial puede variar de cojinete final, el punto medio
puede no estar situado a mitad de camino entre las latitudes /
longitudes; el punto medio entre 35 ° N, 45 ° E y 35 ° N, 135 ° E es de
alrededor de 45 ° N, 90 ° E.
punto intermedio
Un punto intermedio en cualquier fracción a lo largo del trayecto de círculo máximo entre dos
puntos también se pueden calcular. 1
punto de destino a lo largo del círculo máximo dada la distancia y rumbo desde el punto de
partida
53°19'14?N 001°43'47?
Punto de partida: ,
Cojinete: 096°01'18?
Distancia: km
ver el mapa
si el pecado (λ 2 -λ 1 )> 0
θ 12 = θ un
θ 21 = 2π - θb
demás
θ 12 = 2π - θ un
θ 21 = θ b
α1= (θ 13 - θ 12 + π)% 2π - π
α 2 = (θ 21 - θ 23 + π)% 2π - π
alpha 3 = Acos (-cos alfa 1 ⋅ cos alfa 2 + sen α 1 ⋅ pecado alfa 2 ⋅ cos delta 12 )
δ 13 = atan2 (sen δ 12 ⋅ pecado α 1 ⋅ pecado α 2 , cos alfa 2 + cos alfa 1 ⋅ cos α 3 )
φ 3 = asin (sen φ 1 ⋅ cos delta 13 + cos 1 ⋅ sen δ 13 ⋅ cos theta 13 )
Δλ 13 = atan2 (sen θ 13 ⋅ sen δ 13 ⋅ cos 1 , cos δ 13 - sen φ 1 ⋅ φ pecado 3 )
λ 3 = (λ 1 + Δλ 13 + π) 2π% - π
Aquí, el trayecto de círculo máximo es identificado por un punto inicial y un punto final -
dependiendo de lo que los datos iniciales se trabaja a partir, puede utilizar las fórmulas
anteriormente para obtener la distancia y cojinetes relevante. El signo de d xt le indica qué
lado de la ruta de acceso al tercer punto está encendido.
La distancia a lo largo de la pista, desde el punto inicial hasta el punto más cercano en el
camino hacia el tercer punto, es
líneas de rumbo
Una "línea de rumbo '(o loxódromo) es un camino de rodamiento constante, que cruza todos
los meridianos en el mismo ángulo.
Marineros solían (ya veces todavía) Aproximación a las líneas de rumbo, ya que es más fácil
de seguir un rumbo de la brújula constante que ser un ajuste continuo del cojinete, como se
necesita para seguir un gran círculo. líneas de rumbo son líneas rectas en un mapa de
proyección Mercator (también útiles para la navegación).
líneas de rumbo son generalmente más largas que las rutas de círculo máximo
(ortodrómica). Por ejemplo, Londres y Nueva York es del 4% ya lo largo de una línea de
rumbo que a lo largo de un gran círculo - importante para el combustible de aviación, pero
no particularmente a los veleros. Nueva York a Beijing - cerca el ejemplo más extremo
posible (aunque no navegable!) - Es un 30% más a lo largo de una línea de rumbo.
Distancia: 5198 km
ver el mapa
Distancia: km
ver el mapa
Clave para los cálculos de las líneas de rumbo es la inversa de la función Gudermannian ¹ ,
que da la altura en un mapa proyección de Mercator de una determinada latitud: ln (+ tanφ
secφ) o ln (tan (π / 4 + φ / 2)) . Por supuesto, esto tiende a infinito en los polos (en
consonancia con la proyección de Mercator). Para los obsesivos, incluso hay una versión
elipsoidal, la 'de latitud isométrica': ψ = ln (tan (π / 4 + φ / 2) / [ (1-e⋅sinφ) / (1 + e⋅sinφ)] e / 2 ) ,
o su equivalente mejor acondicionado ψ = atanh (sinφ) - e⋅atanh (e⋅sinφ) .
Las fórmulas para derivar la proyección de Mercator este y norte coordenadas de latitud y
longitud son esféricas entonces ¹
E=R⋅λ
N = R ⋅ ln (tan (π / 4 + φ / 2))
Distancia
Desde una línea de rumbo es una línea recta en una proyección de Mercator, la distancia
entre dos puntos a lo largo de una línea de rumbo es la longitud de esa línea (por
Pitágoras); pero la distorsión de la proyección tiene que ser compensado por.
JavaScript: // Si dLon más de 180 ° toman más corta línea que llega a través de la antimeridiano: si ( Math . Abs (Δλ)
Δλ> 0 ? - ( 2 * Matemáticas . PI -Δλ) : ( 2 * Math . PI + Δλ);
(todos los
ángulos
en radianes) var dist = Math . sqrt (Δφ Δφ * + q * q * * Δλ Δλ) * R ;
Cojinete
Una línea de rumbo es una línea recta en una proyección de Mercator, con un ángulo de la
proyección igual a la marcación de la brújula.
JavaScript: // Si dLon más de 180 ° toman más corta línea que llega a través de la antimeridiano: si ( Math . Abs (Δλ)
Δλ> 0 ? - ( 2 * Matemáticas . PI -Δλ) : ( 2 * Math . PI + Δλ);
(todos los
ángulos
en radianes) var método Rumbo = Math . atan2 (Δλ, Δψ). toDegrees ();
Destino
Fórmula: δ=d/R
Δψ = ln (tan (π / 4 + φ 2 /2) / tan (π / 4 + φ 1 /2)) ( 'P
Punto medio
Esta fórmula para calcular el 'punto medio perimétrica', el punto a mitad de camino a lo
largo de una línea de rumbo entre dos puntos, se debe a Robert Hill y Clive diente 1 (gracias
Axel!).
Fórmula: φ m = (φ 1 + φ 2 ) / 2
f 1 = tan (π / 4 + φ 1 /2)
f 2 = tan (π / 4 + φ 2 /2)
f m = tan (π / 4 + φ m / 2)
λ m = [(λ 2 -λ 1 ) ⋅ ln (f m ) λ + 1 ⋅ ln (f 2 ) - λ 2 ⋅ ln (f 1 )] / ln (f 2 / f 1 )
dónde φ es la latitud , λ es la longitud , ln es logaritmo natural
si ( Math . abs (λ 2 -λ 1 ) > Matemáticas . PI ) λ 1 + = 2 * Matemáticas . PI ; //
cruzar antimeridiano