PHP:¿Puedo saber la distancia de una coordenada a otra?

De Foros del Web

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";
?> 

--nicolaspar 05 Jun 2007

Este artículo es parte de las FAQs de PHP y el Manual de PHP.

Herramientas personales