distances.online

Artigo do blog

Calculadora Haversine: a fórmula passo a passo, com mapa

Por que parece que os aviões voam em curva? A matemática por trás da resposta, passo a passo.

Publicado: Atualizado: Todos os artigos

Arraste o marcador A ou B para qualquer ponto do mapa. A linha azul é o caminho mais curto sobre o globo; a cinza, a reta sobre o mapa plano. A distância e cada passo da fórmula são recalculados ao movê-los.

Ponto A
Ponto B
Distância
5.576,5 km
5.576.462 m

Você também pode digitar as coordenadas aqui.

Abrir Nova York a Londres na calculadora

A fórmula passo a passo para os dois pontos acima

PassoFórmulaValor
Latitude de A em radianosφ₁ = lat(A) · π / 1800,710572 rad
Latitude de B em radianosφ₂ = lat(B) · π / 1800,898974 rad
Diferença de latitudeΔφ = φ₂ − φ₁0,188401 rad
Diferença de longitudeΔλ = λ₂ − λ₁1,289418 rad
Termo haversinea = sin²(Δφ/2) + cos φ₁ · cos φ₂ · sin²(Δλ/2)0,17923643
Ângulo centralc = 2 · atan2(√a, √(1 − a))0,874309 rad
Distânciad = R · c (R = 6.378,137 km)5.576,5 km

Quando você digita Nova York e Londres na calculadora, o primeiro número que aparece é 5.576 km. Nenhuma estrada foi consultada, nenhum horário de voo: é o caminho mais curto possível sobre a superfície da Terra entre os dois centros das cidades, e sai de um pequeno trecho de trigonometria chamado fórmula de Haversine. Este artigo escreve a fórmula por completo, percorre esse cálculo exato Nova York–Londres e deixa você arrastar dois pontos num mapa para ver cada passo se atualizar ao vivo. Se preferir começar pela ideia sem as equações, comece pela introdução em palavras simples.

Por que uma régua sobre um mapa plano mente

Num mapa, a rota de um voo longo quase nunca aparece como uma linha reta, e sim como um arco. Parece um desvio, mas é o caminho mais curto.

Um globo terrestre e um barbante bastam para comprovar. Se uma ponta é fixada em Londres e a outra em Nova York e o barbante é esticado, ele não segue o paralelo para o oeste: sobe sobre o Atlântico, passa perto da Groenlândia e volta a descer. É o mesmo trajeto que os aviões fazem. Esse caminho se chama círculo máximo, e é a borda que aparece ao cortar o globo ao meio pelo centro. Sobre a esfera é a linha mais reta possível. A linha que a calculadora desenha entre duas cidades é esse arco, traçado sobre o mapa plano.

A mesma rota num globo (à esquerda) e no mapa plano (à direita). Na esfera é a linha mais reta que existe; no mapa ela se arqueia para o norte, e a linha cinza é o que uma régua traçaria. Clique numa imagem para ampliá-la.

O problema aparece ao passar a esfera para um plano, como na maioria dos mapas: as proporções se distorcem. Perto do equador o mapa plano é quase idêntico à esfera, mas quanto mais se afasta em direção aos polos, mais ele se estica. No mapa mais comum, a Groenlândia aparece quase do tamanho da África, que na verdade é cerca de catorze vezes maior.

Por isso a trajetória de um voo, desenhada no plano, parece mais curva quanto mais longe do equador ela passa. Londres–Nova York desenha um arco marcado, enquanto Madri–Buenos Aires, que cruza o equador, parece quase reta.

Então, para medir bem, deixamos o mapa de lado e trabalhamos sobre a própria esfera, com latitudes e longitudes. É isso que a fórmula de Haversine faz.

A fórmula

Chamemos os dois pontos de A e B. Cada um tem uma latitude φ (fi) e uma longitude λ (lambda), os dois ângulos que o localizam no globo. A latitude diz quanto ao norte ou ao sul do equador; a longitude, quanto a leste ou a oeste do meridiano de Greenwich.

a= sin2 (Δφ2) + cos⁡φ1 · cos⁡φ2 · sin2 (Δλ2)
c= 2·atan2⁡ (a,1−a)
d=R·c

Lendo linha por linha:

  • Δφ (delta fi) é a diferença de latitude entre A e B, e Δλ (delta lambda) a diferença de longitude. As duas precisam estar em radianos, não em graus: multiplique os graus por π e divida por 180.
  • a é o "haversine" do ângulo central. Ele combina a separação norte–sul com a separação leste–oeste, escalando a parte leste–oeste pelos cossenos das duas latitudes, porque um grau de longitude é mais curto quanto mais perto de um polo você está (no equador, um grau de longitude tem cerca de 111 km; a 60° norte, só 56 km).
  • c transforma esse número no ângulo, em radianos, entre os dois pontos visto do centro da Terra. A forma com atan2 é a usada na prática: continua precisa mesmo quando os dois pontos estão extremamente próximos ou exatamente opostos.
  • d é a distância: esse ângulo vezes o raio da Terra, R. Com R em quilômetros, o resultado sai em quilômetros.

A palavra haversine é a abreviação de "half the versed sine", o semiverseno, uma função trigonométrica que os navegadores tinham em tabelas impressas desde o século XIX porque tornava fácil justamente este cálculo à mão, num navio. A versão moderna para computador é a mesma ideia escrita com sen².

De Nova York a Londres, passo a passo

A calculadora usa estas coordenadas de centro de cidade: Nova York na latitude 40,7128°, longitude −74,0060° (o oeste é negativo), e Londres na latitude 51,5074°, longitude −0,1278°. Aplicando a fórmula com o mesmo raio terrestre que a calculadora usa, 6378,137 km:

PassoFórmulaValor
Latitude de Nova York em radianosφ₁ = 40,7128 · π / 1800,710572 rad
Latitude de Londres em radianosφ₂ = 51,5074 · π / 1800,898974 rad
Diferença de latitudeΔφ = φ₂ − φ₁0,188401 rad
Diferença de longitudeΔλ = (−0,1278 − (−74,0060)) · π / 1801,289418 rad
Termo haversinea = sen²(Δφ/2) + cos φ₁ · cos φ₂ · sen²(Δλ/2)0,17923643
Ângulo centralc = 2 · atan2(√a, √(1 − a))0,874309 rad
Distânciad = 6378,137 km · c5.576,5 km

Duas coisas a notar. O ângulo central é de cerca de 50 graus, um sétimo de uma volta completa, e por isso o arco entre Nova York e Londres se curva tanto no mapa plano. E a diferença de longitude (1,2894 rad, cerca de 74°) pesa muito mais que a de latitude (0,1884 rad, cerca de 11°): as duas cidades estão mais ou menos na mesma altura, então a maior parte da distância é leste–oeste.

Quão precisa ela é?

A fórmula supõe que a Terra é uma esfera perfeita. Não é: ela é abaulada no equador e achatada nos polos, em cerca de uma parte em 300. A distância do centro ao equador é de 6378,1 km; aos polos, 6356,8 km.

Isso tem duas consequências práticas:

  1. O raio que você escolhe muda a resposta. Este site usa o raio equatorial, 6378,137 km, e obtém 5.576,5 km para Nova York–Londres. Muitas referências usam o raio médio de 6371 km e obtêm 5.570,2 km. As duas são "a" distância haversine; diferem em cerca de 0,1 %.
  2. Diante da forma real da Terra, Haversine pode errar em até cerca de 0,5 %. Para Nova York–Londres, isso é até cerca de 28 km. Para Londres–Sydney, cerca de 17.000 km, pode ser 50 km ou mais. Métodos como as fórmulas de Vincenty trabalham sobre o elipsoide e chegam a milímetros, ao custo de serem muito mais pesados de calcular e de às vezes não convergirem para pontos quase antípodas.

Para uma calculadora de distâncias ou um app de corrida, meio por cento é ruído e Haversine é a ferramenta certa: um punhado de operações, sem iterações, sem casos de falha. Topógrafos e sistemas de navegação que se importam com centímetros usam os métodos elipsoidais.