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
 

 

Función integrada en Google Maps (tm):

1) La biblioteca de geometría debe cargarse en la definición del mapa:

 

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

 

2) Calcula directamente en tu script usando la función computeDistanceBetween que es parte de la librería de geometría. El resultado es en metros por lo que convertimos a Km. y reducimos a tres decimales.

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

Complementos
Formato códigos postales
Monedas
Lenguajes
Países
Nombres de países
Divisiones administrativas
Zonas horarias
Formulas, ejemplos
Distancia entre puntos
Localizar puntos en radio
Códigos estándar
Códigos ISO
Códigos FIPS
Códigos NUTS