Distancia entre dos puntos / coordenadas

Latitud y Longitud en esta formula deben ser proveídos en radianes, ejemplo: Lat1 = Lat1 * PI / 180
6378.137 es el diámetro de la tierra en km. en datum WGS84. Usar: 3963.191 para millas.
PI = 3.14159265358979323846
Lat1 = Lat1 * PI / 180
Lon1 = Lon1 * PI / 180
Lat2 = Lat2 * PI / 180
Lon2 = Lon2 * PI / 180
D = 6378.137 * ACos( Cos( Lat1 ) * Cos( Lat2 ) * Cos( Lon2 - Lon1 ) + Sin( Lat1 ) * Sin( Lat2 ) )
Si no dispone de la función ACos, probablemente tendrá la función Atn, la siguiente formula realiza el calculo vía ArcTan. En esta formula se proveen los datos Latitud y Longitud sin convertir a radianes.
D = 6378.137 * Atn( Sqr( ( 1 - ( Sin( Lat1 / 57.29577951 ) * Sin( Lat2 / 57.29577951 ) + Cos( Lat1 / 57.29577951 ) * Cos( Lat2 / 57.29577951 ) * Cos( Lon2 / 57.29577951 - Lon1 / 57.29577951 ) ) ^2 ) ) / (Sin ( Lat1 / 57.29577951 ) * Sin( Lat2 / 57.29577951 ) + Cos( Lat1 / 57.29577951 ) * Cos( Lat2 / 57.29577951 ) * Cos( Lon2 / 57.29577951 - Lon1 / 57.29577951 ) ) )
Ejemplos de código
Java
ASP
C+
C#
Perl
PHP
 

 

Funzione integrata in Google Maps™:

1) La libreria di geometria deve essere caricata nella definizione della mappa:

 

<script type="text/javascript" src="https://maps.google.com/maps/api/js?sensor=false&libraries=geometry"></script>

 

2) Calcola direttamente nel tuo script utilizzando la funzione computeDistanceBetween, che fa parte della libreria di geometria. Il risultato è in metri, quindi lo convertiamo in km e lo arrotondiamo a tre decimali.

Dist = google.maps.geometry.spherical.computeDistanceBetween(p1, p2); // restituisce metri
Km   = (Dist / 1000).toFixed(3);

Complementi
Divisioni amministrative
Paesi
Nomi dei paesi
Valute
Lingue
Formato codici postali
Fusi orari
Formule, esempi
Distanza tra punti
Luoghi vicini
Codice postale da punto