distances.online

Articolo del blog

Calcolatore haversine: la formula passo per passo

Perché sembra che gli aerei volino in curva? La matematica dietro la risposta, passo per passo.

Pubblicato: Aggiornato: Tutti gli articoli

Trascina il marcatore A o B in qualsiasi punto della mappa. La linea blu è il percorso più breve sul globo, la grigia la retta sulla mappa piana; la distanza e ogni passaggio della formula si ricalcolano quando li sposti.

Punto A
Punto B
Distanza
5576,5 km
5.576.462 m

Puoi anche digitare le coordinate qui.

Apri New York a Londra nel calcolatore

La formula passo per passo per i due punti qui sopra

PassaggioFormulaValore
Latitudine di A in radiantiφ₁ = lat(A) · π / 1800,710572 rad
Latitudine di B in radiantiφ₂ = lat(B) · π / 1800,898974 rad
Differenza di latitudineΔφ = φ₂ − φ₁0,188401 rad
Differenza di longitudineΔλ = λ₂ − λ₁1,289418 rad
Termine haversinea = sin²(Δφ/2) + cos φ₁ · cos φ₂ · sin²(Δλ/2)0,17923643
Angolo al centroc = 2 · atan2(√a, √(1 − a))0,874309 rad
Distanzad = R · c (R = 6378,137 km)5576,5 km

Quando scrivi New York e Londra nel calcolatore, il primo numero che ottieni è 5.576 km. Non è stata consultata nessuna strada, nessun orario dei voli: è il percorso più breve possibile sulla superficie della Terra tra i due centri città, e viene da un breve pezzo di trigonometria chiamato formula dell'emisenoverso (haversine). Questo articolo scrive la formula per intero, ripercorre esattamente quel calcolo New York–Londra e ti lascia trascinare due punti su una mappa per vedere ogni passaggio aggiornarsi dal vivo. Se preferisci prima l'idea senza equazioni, parti da l'introduzione in parole semplici.

Perché un righello su una mappa piana mente

Su una mappa, la rotta di un volo lungo quasi mai appare come una linea retta, ma come un arco. Sembra una deviazione, ma è il percorso più breve.

Un mappamondo e un filo bastano per verificarlo. Se si fissa un capo su Londra e l'altro su New York e si tende il filo, questo non segue il parallelo verso ovest: sale sopra l'Atlantico, passa vicino alla Groenlandia e ridiscende. È lo stesso tragitto che fanno gli aerei. Quel percorso si chiama cerchio massimo, ed è il bordo che compare tagliando il globo in due per il centro. Sulla sfera è la linea più dritta possibile. La linea che il calcolatore disegna tra due città è quell'arco, tracciato sulla mappa piana.

La stessa rotta su un globo (a sinistra) e sulla mappa piana (a destra). Sulla sfera è la linea più dritta che esista; sulla mappa si incurva verso nord, e la linea grigia è ciò che traccerebbe un righello. Clicca su un'immagine per ingrandirla.

Il problema compare quando si porta la sfera su un piano, come nella maggior parte delle mappe: le proporzioni si distorcono. Vicino all'equatore la mappa piana è quasi identica alla sfera, ma più ci si allontana verso i poli, più si allunga. Nella mappa più comune, la Groenlandia appare grande quasi quanto l'Africa, che in realtà è circa quattordici volte più grande.

Per questo la traiettoria di un volo, disegnata sul piano, appare tanto più curva quanto più lontano dall'equatore passa. Londra–New York disegna un arco marcato, mentre Madrid–Buenos Aires, che attraversa l'equatore, appare quasi retta.

Per misurare bene, quindi, lasciamo da parte la mappa e lavoriamo sulla sfera stessa, con latitudini e longitudini. È quello che fa la formula dell'emisenoverso.

La formula

Chiamiamo A e B i due punti. Ognuno ha una latitudine φ (fi) e una longitudine λ (lambda), i due angoli che lo collocano sul globo. La latitudine dice quanto a nord o a sud dell'equatore; la longitudine, quanto a est o a ovest del meridiano di Greenwich.

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

Letta riga per riga:

  • Δφ (delta fi) è la differenza di latitudine tra A e B, e Δλ (delta lambda) la differenza di longitudine. Entrambe devono essere in radianti, non in gradi: moltiplica i gradi per π e dividi per 180.
  • a è l'"emisenoverso" dell'angolo al centro. Combina lo scarto nord–sud con quello est–ovest, scalando la parte est–ovest per i coseni delle due latitudini, perché un grado di longitudine è tanto più corto quanto più si è vicini a un polo (all'equatore un grado di longitudine è circa 111 km; a 60° nord solo 56 km).
  • c trasforma quel numero nell'angolo, in radianti, tra i due punti visto dal centro della Terra. La forma con atan2 è quella usata in pratica: resta precisa anche quando i due punti sono estremamente vicini o esattamente opposti.
  • d è la distanza: quell'angolo per il raggio della Terra, R. Con R in chilometri si ottengono chilometri.

La parola haversine abbrevia "half the versed sine", l'emisenoverso, una funzione trigonometrica che i naviganti avevano in tavole stampate fin dall'Ottocento perché rendeva facile proprio questo calcolo a mano, su una nave. La versione moderna per computer è la stessa idea scritta con sin².

Da New York a Londra, passo per passo

Il calcolatore usa queste coordinate dei centri città: New York a latitudine 40,7128°, longitudine −74,0060° (l'ovest è negativo), e Londra a latitudine 51,5074°, longitudine −0,1278°. Applicando la formula con lo stesso raggio terrestre usato dal calcolatore, 6378,137 km:

PassaggioFormulaValore
Latitudine di New York in radiantiφ₁ = 40,7128 · π / 1800,710572 rad
Latitudine di Londra in radiantiφ₂ = 51,5074 · π / 1800,898974 rad
Differenza di latitudineΔφ = φ₂ − φ₁0,188401 rad
Differenza di longitudineΔλ = (−0,1278 − (−74,0060)) · π / 1801,289418 rad
Termine haversinea = sin²(Δφ/2) + cos φ₁ · cos φ₂ · sin²(Δλ/2)0,17923643
Angolo al centroc = 2 · atan2(√a, √(1 − a))0,874309 rad
Distanzad = 6378,137 km · c5.576,5 km

Due cose da notare. L'angolo al centro è di circa 50 gradi, un settimo di un giro completo, ed è per questo che l'arco tra New York e Londra si incurva così visibilmente sulla mappa piana. E la differenza di longitudine (1,2894 rad, circa 74°) pesa molto più di quella di latitudine (0,1884 rad, circa 11°): le due città sono più o meno alla stessa altezza, quindi gran parte della distanza è est–ovest.

Quanto è precisa?

La formula presume che la Terra sia una sfera perfetta. Non lo è: è rigonfia all'equatore e schiacciata ai poli, di circa una parte su 300. La distanza dal centro all'equatore è 6378,1 km; ai poli, 6356,8 km.

Questo ha due conseguenze pratiche:

  1. Il raggio che scegli cambia la risposta. Questo sito usa il raggio equatoriale, 6378,137 km, e ottiene 5.576,5 km per New York–Londra. Molti riferimenti usano invece il raggio medio di 6371 km e ottengono 5.570,2 km. Entrambe sono "la" distanza haversine; differiscono di circa lo 0,1 %.
  2. Rispetto alla forma reale della Terra, haversine può sbagliare fino a circa lo 0,5 %. Per New York–Londra sono fino a circa 28 km. Per Londra–Sydney, circa 17.000 km, possono essere 50 km o più. Metodi come le formule di Vincenty lavorano sull'ellissoide e arrivano ai millimetri, al prezzo di calcoli molto più pesanti e di una convergenza che a volte fallisce per punti quasi antipodali.

Per un calcolatore di distanze o un'app per la corsa, mezzo punto percentuale è rumore e haversine è lo strumento giusto: una manciata di operazioni, nessuna iterazione, nessun caso di errore. I topografi e i sistemi di navigazione a cui importano i centimetri usano i metodi ellissoidali.