Artículo
|
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:
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:
Vía: Phpsnippets
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 |
|
|
Comentarios
Últimas noticias
· factura
Últimos artículos














































