Calcular distancia en función de la latitud y longitud [PHP]

Para una aplicación que estoy desarrollando, se me ocurrió buscar el punto más cercano a partir de mi ubicación (Latitud y Longitud), entonces como siempre Google me dió una de las formulas más simples para realizar esta calculo.

La fórmula del haversine, la cual no explicaré de ninguna manera, es la que nos permitirá realizar este cálculo. Debemos considerar tener la latitud y longitud de 2 puntos del planeta y utilizar la siguiente fórmula..

rad2deg(acos((sin(deg2rad($lat1))*sin(deg2rad($lat2))) + (cos(deg2rad($lat1))*cos(deg2rad($lat2))*cos(deg2rad($long1-$lon2)))))

Luego basándonos en que 1 grado = 111,13384 km, (diámetro promedio de la Tierra = 12.735 km) multiplicamos el resultado anterior por 111,13384 y tendremos la distancia en kilómetros entre 2 puntos conociendo su latitud y longitud.

La fórmula anterior está utilizando las funciones matemáticas de PHP rad2deg, acos, sin y cos.

Para finalizar, simplemente tomé mi latitud y longitud, las guardé en las variables $lat1 y $lat2, a una variable $distanciaminima le dí un valor muy alto y luego en un ciclo for recorrí un array que contiene las latitudes y longitudes de varios puntos que quiero comparar.

Si la distancia que me da en la fórmula es menor que la $distanciaminima, entonces le doy a $distanciaminima ese nuevo valor y puedo guardar esos valores de latitud y longitud para indicar que ese punto es el más cercano.

 

 

Un comentario Agrega el tuyo

Deja un comentario