Diario de Abordo

PHP Calcular la distancia entre dos puntos usando latitud y longitud

Cómo calcular la distancia entre dos puntos utilizando latitud y longitud, (PHP).

Haversine Formula http://en.wikipedia.org/wiki/Haversine_formula


Funció en PHP para calcular la distancia entre 2 puntos:

function distance($lat1, $lon1, $lat2, $lon2) { 
$pi80 = M_PI / 180; 
$lat1 *= $pi80; 
$lon1 *= $pi80; 
$lat2 *= $pi80; 
$lon2 *= $pi80; 
$r = 6372.797; // mean radius of Earth in km 
$dlat = $lat2 - $lat1; 
$dlon = $lon2 - $lon1; 
$a = sin($dlat / 2) * sin($dlat / 2) + cos($lat1) * cos($lat2) * sin($dlon / 2) * sin($dlon / 2); 
$c = 2 * atan2(sqrt($a), sqrt(1 - $a)); 
$km = $r * $c; 
//echo ' '.$km; 
return $km; 
}
 

También se puede calcular con un query Mysql para obtener los puntos más cercanos a un punto.
Este SlideShare puede ayudarte a optimzizar tus querys, ya que este tipo de querys pueden ser lentos y consumir mucho tiempo con bases de datos grandes.

Geo Distance Search with MySQL by Oleksiy Kovyrin

Un poco de prueba/error antes de programar nada http://www.movable-type.co.uk/scripts/latlong.html    

Beto López
"Full stack" web developer focused in maintenance and bug fixing.Wordpress, Prestashop, HTML, CSS, Javascript, Php and Mysql. Also open source collaborator. Beto Ayesa,LinkedinTwitter.


PHP Calcular la distancia entre dos puntos usando latitud y longitud
Te respondemos rapidamente
Contacta
Php Ninja