Pregunta: Puedo saber la distancia de una coordenada a otra?
Respuesta: usando la siguiente función:
Código PHP:
<?
#By nicolaspar 2007
function distancia($latitud1, $longitud1, $latitud2, $longitud2, $millas = true){
$pi180 = M_PI / 180;
#Transformo las coordenadas en radiales
$latitud1 *= $pi180; $longitud1 *= $pi180; $latitud2 *= $pi180; $longitud2 *= $pi180;
$r = 6378.139; // radio medio de tierra por kilómetro (WGS84)
$distanciaLatitud = $latitud2 - $latitud1;
$distanciaLongitud = $longitud2 - $longitud1;
#Formula de Haversine
$a = sin($distanciaLatitud / 2) * sin($distanciaLatitud / 2) + cos($latitud1) * cos($latitud2) * sin($distanciaLongitud / 2) * sin($distanciaLongitud / 2);
#Calculo la distancia
$c = 2 * atan2(sqrt($a), sqrt(1 - $a));
$km = $r * $c;
#La saco en millas o en km
return $millas ? $km * 0.621371192 : $km;
}
/**
* Ej,
* Desde Buenos Aires Observatorio Lat -34.56667 | long -58.41667
* Hasta Adelaide Airport, Oceania, Australia, Lat -34.93333 | Long 138.51667
**/
echo distancia(-34.56667, -58.41667, -34.93333, 138.51667, false) ." Km<br />";
echo distancia(-34.56667, -58.41667, -34.93333, 138.51667) ." Millas";
?>