Categorías destacadas
programacion php    
Artículo
0
¡votar!

 Calcular la distancia entre dos puntos utilizando su latitud y longitud dada

Hay ocasiones que por el motivo que sea, es necesario saber la distancia que hay entre dos puntos conocida la latitud y la longitud de estos puntos. Esto lo podemos hacer mediante código PHP.

En este caso, crearemos una función a la que proporcionaremos la latitud y longitud del punto 1, y del punto 2, así como la forma en la que queremos que nos devuelvan los datos ya sean millas, kilómetros o millas náuticas.

El código que calculará esto es el siguiente:

function distance($lat1, $lon1, $lat2, $lon2, $unit) { 
$theta = $lon1 - $lon2;
$dist = sin(deg2rad($lat1)) * sin(deg2rad($lat2)) +  cos(deg2rad($lat1)) * cos(deg2rad($lat2)) * cos(deg2rad($theta));
$dist = acos($dist);
$dist = rad2deg($dist);
$miles = $dist * 60 * 1.1515;
$unit = strtoupper($unit);
if ($unit == "K") {
return ($miles * 1.609344);
} else if ($unit == "N") {
return ($miles * 0.8684);
} else {
return $miles;
}
}


La función utiliza trigonometría para calcular la distancia entre los dos puntos, y esta información se puede encontrar haciendo una búsqueda por la red.

Como funciones destacables de PHP podemos hablar de “deg2rad” que convierte los datos que van en grados a radianes y su contraria “rad2deg”, que pasa los datos de radianes a grados.

Al final de la función, según el parámetro del tipo de datos que hayamos solicitado, nos darán los resultados en uno u otra medida.

Ejemplo de uso son e siguiente:

//Millas
echo distance(32.9697, -96.80322, 29.46786, -98.53506, "m") . " milla";
//Kilómetros
echo distance(32.9697, -96.80322, 29.46786, -98.53506, "k") . " kilómetros";
//Millas náuticas
echo distance(32.9697, -96.80322, 29.46786, -98.53506, "n") . " millas náuticas";


Vía: Phpsnippets
   
Publicado por:
angel carrero
Recomendar
a un amigo
Compartir
en redes
 
Comentarios
 
BBDD
Entornos de desarrollo
Entretenimiento
Herramientas
Internet
Lenguajes de script
Lenguajes imperativos
Lenguajes orientados a objeto
Otros lenguajes
Plataformas
Teoría
Varios
Copyright © 1998-2011 Programación en Castellano. Todos los derechos reservados
Datos legales | Politica de privacidad | Contacte con nosotros | Publicidad

Diseño web y desarrollo web. Un proyecto de los hermanos Carrero.

Red internet:
Juegos gratis | Servidores dedicados
Más internet: Password | Directorio de weblogs | Favicon