Vous êtes sur la page 1sur 13

La fórmula del semiverseno es una importante ecuación para

la navegación astronómica, en cuanto al cálculo de ladistancia de


círculo máximo entre dos puntos de un globo sabiendo su longitud y
su latitud. Es un caso especial de una fórmula más general
de trigonometría esférica, la ley de los semiversenos , que relaciona
los lados y ángulos de los "triángulos esféricos".1
Estos nombres derivan del hecho que suele expresarse en términos de
la función haversine, dada por
haversin (θ) = sen 2 (θ/2)
Las fórmulas también podrían estar escritas en términos de cualquier
múltiple del haversine, como la antigua funciónverseno (el doble del
haversine).
Pero históricamente, el haversine tuvo, una ligera ventaja en su uso
en el mar ya que su máximo es "1", por lo que las tablas
logarítmicas de sus valores podían acabar con el valor cero. Hoy en
día, la forma del haversine sigue siendo interesante, ya que no tiene
ningún coeficiente delante de la función seno 2 .
En la época anterior a las calculadoras digitales, el uso de tablas
náuticas detalladas para el haversine, haversine/inverso y
sus logaritmos (para ayudar en las multiplicaciones) ahorró a los
navegantes calcular los cuadrados de los senos, el cálculo de raíces
cuadradas, etc., un proceso arduo y que podía agravar los pequeños
errores (ver también verseno). En el caso del cálculo de longitud por
las distancias lunares de José de Mendoza, redujo el proceso de 30
pasos a 7.

Formula del Haversine.-


Para cualquier par de puntos sobre una esfera:

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)

Como se ha mencionado anteriormente, esta fórmula no es demasiado buena para la


resolución de c cuando c es pequeño. En su lugar, se sustituye la identidad: cos (θ) =
1-2 hav(θ), y para obtener la ley del haversine citada más arriba, también se utiliza
la identidad de la suma:
cos(a − b) = cos(a)cos(b) + sen(a)sen(b)

Introduzca las coordenadas en los cuadros de texto para probar los cálculos. Se acepta una
diversidad de formatos, principalmente:

 deg-min-sec con el sufijo N / S / E / W (por ejemplo, 40 ° 44'55 "N, 73 59 11W),


o
 firmados grados decimales sin dirección de la brújula, donde negativa indica al
oeste / sur (por ejemplo, 40.7486, -73.9864):

50 03 59N 005 42 53W


Punto 1: ,

58 38 38N 003 04 12W


Punto 2: ,

Distancia: 968,9km (a 4 SF *
)

cojinete inicial: 009 ° 07 '11 "

cojinete final: 011 ° 16 '31 "

Punto medio: 54 ° 21 '44 "N, 004 ° 31' 50" W

Y se puede ver en un mapa (no son los chicos de Google maravilloso!)

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!).

a = sin² (Δφ / 2) + cos φ 1 ⋅ cos φ 2 ⋅ sin² (Δλ / 2)


Haversine c = 2 ⋅ atan2 (√ una , √ (1-a) )
fórmula: d=R⋅c
φ es la latitud, λ es la longitud, R es el radio de la Tierra (radio medio = 6.371
kilometros);
tenga en cuenta que los ángulos tienen que estar en radianes para pasar a trig
dónde funciones!
var R = 6371e3 ; // metros var φ 1 = Lat1 . toRadians (); var φ 2 = Lat2 . toRadians
(); var Δφ = ( Lat2 - Lat1 ). toRadians (); var Δλ = ( Lon2 - lon1 ). toRadians ();

var un = Math . pecado (Δφ / 2 ) * Matemáticas . pecado (Δφ / 2 ) + Matemáticas . cos


(φ 1 ) * Matemáticas . cos (φ 2 ) * Matemáticas . pecado (Δλ / 2 ) * Matemáticas .
pecado ( Δλ / 2 ); var c = 2 * Matemáticas . atan2 ( Math . sqrt ( una ), Math . sqrt (
1 - a ));

JavaScript: var d = R * C ;

Nótese en estas secuencias de comandos, generalmente uso latitud / longitud de latitud /


longitud en grados, y φ / λ para la latitud / longitud en radianes - habiendo encontrado que
los grados y radianes mezcla es a menudo la ruta más fácil para rascarse la cabeza insectos
...

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.

Para los curiosos, c es la distancia angular en radianes, y una es el cuadrado de la mitad de


la longitud de la cuerda entre los puntos.

Si atan2no está disponible, c podría calcularse a partir de 2 ⋅ asin (min (1, √ un ))(incluyendo
la protección contra errores de redondeo).

El uso de Chrome en un PC Core i5 de medio pelo, un cálculo de la distancia tarda alrededor


de 2 - 5 microsegundos (de ahí alrededor de 200.000 - 500.000 por segundo). Poco o ningún
beneficio se obtiene al factorizar los términos comunes; probablemente el compilador JIT
optimiza ellos fuera.

Esférica ley de los cosenos


De hecho, JavaScript (y la mayoría de las computadoras modernas e idiomas) utilizan '' IEEE
754 números de coma flotante de 64 bits, que proporcionan 15 cifras significativas de
precisión. Según mis cálculos, con esta precisión, el simple derecho esférica de
cosenos fórmula (cos c = cos a cos b + sin un pecado b cos C ) da resultados bien
condicionados a distancias tan pequeñas como unos pocos metros sobre la superficie de la
tierra. ( Tenga en cuenta que la forma geodésica de la ley de los cosenos se reordena de la canónica de
manera que la latitud se puede utilizar directamente, en lugar de la colatitud ).

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

Si el rendimiento es un problema y la precisión es menos importante, para las pequeñas


distancias teorema de Pitágoras se puede utilizar en una proyección cilíndrica equidistante : *

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.

Por rodamiento final, simplemente tome la inicial del cojinete


del extremo punto a la puesta punto y marcha atrás (usando θ = (θ + 180)
360%).

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)

La longitud puede normalizarse a -180 ... + 180 utilizando (lon+540)%360-180

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

a = sen ((1-f) ⋅δ) / sen δ


b = sen (f⋅δ) / sen δ
x = a ⋅ cos 1 ⋅ cos lambda 1 + b ⋅ cos 2 ⋅ cos lambda 2
y = a ⋅ cos φ 1 ⋅ pecado λ 1 + b ⋅ cos φ 2 ⋅ pecado λ 2
z = a ⋅ pecado φ 1 + b ⋅ pecado φ 2
φ i = atan2 (z, √ x² + y²)
Fórmula: λ i = atan2 (y, x)
f es la fracción a lo largo de ruta ortodrómica (f = 0 es el punto 1, f = 1 es el
dónde punto 2), δ es la distancia angulard / R entre los dos puntos.

punto de destino distancia y el rumbo desde el


punto de partida
Dado un punto de inicio, rodamiento inicial, y la distancia, esto va a calcular el punto de
destino y el rumbo final de viajar a lo largo de un (distancia más corta) arco de círculo
máximo.

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

punto de destino: 53 ° 11 '18 "N, 000 ° 08' 00" E


cojinete final: 097 ° 30 '52 "

ver el mapa

Fórmula: φ 2 = asin (sen φ 1 ⋅ cos δ + cos 1 ⋅ pecado δ ⋅ cos θ)


λ 2 = λ 1 + atan2 (sen θ ⋅ pecado δ ⋅ cos φ 1 , cos δ - sen φ 1 ⋅ pecado φ 2 )
φ es la latitud, λ es la longitud, θ es el rodamiento (en sentido horario desde el
norte), δ es la distancia angular d / R ; D está recorriendo la distancia, R el
dónde radio de la Tierra
var φ 2 = Math . asin ( Math . pecado (φ 1 ) * Matemáticas . cos ( d / R ) + Math .
cos (φ 1 ) * Matemáticas . pecado ( d / R ) * Matemáticas . cos ( Acm ) ); var λ 2 = λ
1 + Matemáticas . atan2 ( Math . pecado ( Acm ) * Matemáticas . sen ( d / R ) *
JavaScript: Matemáticas . cos (φ 1 ), Math . cos ( d / R ) - Matemáticas . pecado (φ 1 ) *
Matemáticas . pecado (φ 2 ));
(todos los
ángulos
en radianes)

La longitud puede normalizarse a -180 ... + 180 utilizando (lon+540)%360-180


Lat2: = ASIN (SIN (Lat1) * cos (D / R) + cos (Lat1) * SIN (/ R) * cos (Acm)
Sobresalir: d)
Lon2: = + lon1 ATAN2 (COS (D / R) -sen ( Lat1) * SIN (Lat2), SIN (Acm) * SIN
(todos los (D / R) * cos (Lat1))
ángulos * Recuerda que Excel invierte los argumentos para ATAN2 - véanse las notas a
en radianes) continuación

Por rodamiento final, simplemente tome la inicial del cojinete


del extremo punto a la puesta punto y marcha atrás con(brng+180)%360.

Intersección de dos caminos dada puntos de inicio


y cojinetes
Este es un cálculo bastante más compleja que la mayoría de los demás en esta página, pero
me han preguntado por ella en varias ocasiones. Esto viene de Ed William formulario de
aviación . Vea a continuación el código JavaScript.

Intersección de dos caminos de círculo máximo

51.8853 N 0.2545 E 108.55°


Punto 1: , Acm 1:

49.0034 N 2.5735 E 32.44°


Punto 2: , Acm 2:

Punto de intersección: 50 ° 54 '27 "N, 004 ° 30' 31" E

δ 12 = 2⋅asin (√ (sin² (Δφ / 2) + cos φ 1 ⋅ cos φ 2 ⋅ sin² (Δλ / 2)) )


Fórmula: θ a = Acos (sen φ 2 - sen φ 1 ⋅ cos delta 12 / sen delta 12 ⋅ cos 1 )
θ b = Acos (sen φ 1 - sen φ 2 ⋅ cos delta 12 / δ pecado 12 ⋅ cos 2 )

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π% - π

φ 1 , λ 1 , θ 1 : 1 de punto de partida y (inicial) del cojinete


φ 2 , λ2, θ2: 2 ° y el punto de partida (inicial) teniendo
φ 3 , λ 3 : punto de intersección

% = (Coma flotante) módulo


dónde
si el pecado α 1 = 0 y el pecado α 2 = 0: infinitas soluciones
si el pecado α 1 ⋅ pecado α 2 <0: solución ambigua
esta formulación no es siempre bien acondicionado para meridionales o
Nota - ecuatoriales líneas

Esto es mucho más sencillo el uso de vectores en lugar de la trigonometría esférica:


ver LatLong-vectors.html .

distancia perpendicular a la trayectoria


Esto es una nueva: Me han preguntado en ocasiones sobre la distancia de un punto de un
trayecto de círculo (a veces llamado error de traza).

Fórmula: d xt = asin (sen (δ 13 ) ⋅ sen (θ 13 -θ 12 )) ⋅ R


δ 13 es (angular) distancia del punto inicial al tercer punto
θ 13 es (inicial) que lleva del punto inicial al tercer punto
θ 12 se (inicial) que lleva desde el punto inicial hasta el punto final
dónde r es el radio de la Tierra
var dXt = Math . asin ( Math . pecado ( d13 / R ) * Matemáticas . pecado (θ 13 -θ 12 ))
JavaScript: * R ;

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

Fórmula: d a = Acos (cos (delta 13 ) / cos (δ xt )) ⋅ R


δ 13 se (angular) distancia del punto inicial al tercer punto
δ xt es (angular) perpendicular a la trayectoria distancia
dónde r es el radio de la Tierra
JavaScript: var DAT = Math . acos ( Math . cos ( d13 / R ) / Matemáticas . cos ( dXt / R )) * R ;

punto más cercano a los polos


Y: 'fórmula de Clairaut' le dará la latitud máxima de un trayecto de círculo, dado un cojinete
y θ φ la latitud en el gran círculo:

Fórmula: φ max = Acos (| cos sen θ ⋅ φ |)


JavaScript: var φ Max = Math . acos ( Math . abs ( Math . pecado (θ) * Matemáticas . cos (φ)));

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 de la línea de rumbo entre dos puntos

50 21 59N 004 08 02W


Punto 1: ,

42 21 04N 071 02 27W


Punto 2: ,

Distancia: 5198 km

Cojinete: 260 ° 07 '38 "

Punto medio: 46 ° 21 '32 "N, 038 ° 49' 00" W

ver el mapa

punto de destino a lo largo de línea de rumbo determinada distancia y el rumbo desde el


punto de partida

51 07 32N 001 20 17E


Punto de partida: ,
Cojinete: 116°38'10

Distancia: km

punto de destino: 50 ° 57 '48 "N, 001 ° 51' 09" E

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))

Las siguientes fórmulas son de la aviación formulario Ed Williams. ¹

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.

En un curso de latitud constante (que viaja de este a oeste), esta compensación es


simplemente cos ; en el caso general, es Δφ / Δψ donde Δψ = ln (tan (π / 4 + φ 2 /2) / tan (π / 4
+ φ 1 /2)) (la 'proyectado' diferencia de latitud)

Fórmula: Δψ = ln (tan (π / 4 + φ 2 /2) / tan (π / 4 + φ 1 /2)) ( 'P

q = Δφ / Δψ (o cos para la línea EW)


d = √ (Δφ² + q²⋅Δλ²) ⋅ R
φ es latitud e, λ es la longitud , Δλ está tomando ruta más corta (<180 °), R es el radio de la Tierr
dónde natural
var Δψ = Math . log ( Math . bronceado ( Math . PI / 4 + φ 2 / 2 ) / Matemáticas . bronceado ( Math . PI /
Math . abs (Δψ) > 10e-12 ? Δφ / Δψ : Matemáticas . cos (φ 1 ); // EW curso se enferma acondicionado con 0/

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.

Fórmula: Δψ = ln (tan (π / 4 + φ 2 /2) / tan (π / 4 + φ 1 /2)) ( 'P


θ = atan2 (Δλ, Δψ)
φ es latitud e, λ es la longitud , Δλ está tomando ruta más corta (<180 °), R es el radio de la Tier
dónde natural
var Δψ = Math . log ( Math . bronceado ( Math . PI / 4 + φ 2 / 2 ) / Matemáticas . bronceado ( Math . PI /

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

Dado un punto de inicio y una distancia d a lo largo de marcación constante θ , esto va a


calcular el punto de destino. Si mantiene un rumbo constante a lo largo de una línea de
rumbo, se le espiral gradualmente hacia uno de los polos.

Fórmula: δ=d/R
Δψ = ln (tan (π / 4 + φ 2 /2) / tan (π / 4 + φ 1 /2)) ( 'P

q = Δφ / Δψ (o cos para la línea EW)


Δλ = δ ⋅ sin θ / q
phi 2 = phi 1 + δ ⋅ cos θ
λ 2 = λ 1 + Δλ
dónde φ es la latitud , λ es la longitud , Δλ es tomar la ruta más corta (<180 °), ln es logaritmo natural,
var Δφ = δ * Matemáticas . cos (θ); var φ 2 = φ 1 + Δλ;

var Δψ = Math . log ( Math . bronceado (φ 2 / 2 + Matemáticas . PI / 4 ) / Matemáticas . bronceado (φ 1 / 2


)); var q = Math . abs (Δψ) > 10e-12 ? Δφ / Δψ : Matemáticas . cos (φ 1 ); // EW curso se enferma acondicio

var Δλ = δ * Matemáticas . pecado (θ) / q ; var λ 2 = λ 1 + Δλ;


JavaScript:
(todos los // Comprobar si hay algún tonto desgraciado va más allá del polo, normalizar la latitud en caso afirmativo
ángulos > Matemáticas . PI / 2 ) φ 2 = φ 2 > 0 ? Math . PI -φ 2 : - Matemáticas . PI -φ 2 ;
en radianes)

La longitud puede normalizarse a -180 ... + 180 utilizando (lon+540)%360-180

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

var φ 3 = (φ 1 + φ 2 ) / 2 ; var f1 = Math . bronceado ( Math . PI / 4 + φ 1 / 2 );


var f2 = Math . bronceado ( Math . PI / 4 + φ 2 / 2 ); var f3 = Math . bronceado (
Math . PI / 4 + φ 3 / 2 ); var λ 3 = ( (λ 2 -λ 1 ) * Matemáticas . log ( f3 ) + λ 1 *
Matemáticas . log ( f2 ) - λ 2 * Matemáticas . log ( f1 ) ) / Matemáticas . log ( f2 /
f1 );
JavaScript:
(todos los
ángulos
en radianes)
si (! isFinite (λ 3 )) λ 3 = (λ 1 + λ 2 ) / 2 ; // paralelo de latitud

La longitud puede normalizarse a -180 ... + 180 utilizando (lon+540)%360-180

Vous aimerez peut-être aussi