Trovare la distanza tra due coordinate in ellissoide?


18

Ho due serie di latitudine e longitudine.

Come trovo la distanza tra le due posizioni se suppongo che la terra sia un ellissoide perfetto (con un'eccentricità di 0,0167)?

Risposte:


16

1
Le formule in quella pagina sembrano ignorare l'eccentricità. Presumono che la terra sia una sfera e non un ellissoide.
Jon Bringhurst,

Precedentemente ho sempre usato una libreria che aveva delle distanze note tra alcuni punti lat long impostati, quindi eseguivo la media per calcolare la distanza di tutti i punti sconosciuti. Chiederò ad alcune persone di questo.
Wallbasher,

Ah, il secondo link sembra avere la formula giusta. Grazie!
Jon Bringhurst,

1
Grazie per la tua risposta @Wallbasher. Tuttavia, sarebbe meglio se le risposte potessero resistere da sole. Sarebbe di grande aiuto pubblicare anche la formula pertinente con la risposta.
RK

7

Quindi conosci le tue due latitudini e longitudini, diciamo

Puoi calcolare le coordinate cartesiane per ciascuna:

xa = (Cos(thisLat)) * (Cos(thisLong));
ya = (Cos(thisLat)) * (Sin(thisLong));
za = (Sin(thisLat));

xb = (Cos(otherLat)) * (Cos(otherLong));
yb = (Cos(otherLat)) * (Sin(otherLong));
zb = (Sin(otherLat));

E quindi calcola la grande distanza del cerchio tra i due usando:

MeanRadius * Acos(xa * xb + ya * yb + za * zb);

Questo approccio semplificato consente il pre-calcolo dei valori x, y e z, che possono essere archiviati insieme in un database per query efficienti "punti entro x miglia".

Ovviamente, questo presuppone una sfera perfetta, e la Terra non è nemmeno un perfetto elissoide, quindi la precisione sarà solo di pochi metri.


1
Avevo intenzione di sottolineare anche la "cosa sfera perfetta". Dovresti essere consapevole che questo metodo ti darà vari gradi di precisione a seconda di dove ti trovi sul globo.
TroutSlayer

@TrotuSlayer è generalmente abbastanza buono per la maggior parte delle applicazioni e c'è sempre un compromesso tra velocità e precisione. Se devi essere più preciso, è il momento di estrarre la ruota a rotelle o ricorrere a ipotesi che la Terra sia piatta per la tua area e le distanze 2D sono sufficienti.
Rowland Shaw,

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.