Tema: FAQ's de PHP
Ver Mensaje Individual
  #178 (permalink)  
Antiguo 05/06/2007, 15:39
Avatar de nicolaspar
nicolaspar
 
Fecha de Ingreso: noviembre-2004
Ubicación: Villa Ballester Bs-As|Ar
Mensajes: 2.002
Antigüedad: 20 años
Puntos: 34
Re: FAQ's de PHP

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 atan2(sqrt($a), sqrt($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.93333138.51667false) ." Km<br />";
echo 
distancia(-34.56667, -58.41667, -34.93333138.51667) ." Millas";
?>
__________________
Mi punto de partida es Que Bueno Lo Nuevo