Last active
October 30, 2019 23:44
-
-
Save maitret/63d194179b2407d6fc79977d1844fa9f to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| /** | |
| * Formula para sacar distancia entre dos puntos dada la latitud y longitud de dos puntos. | |
| * Esta distancia tiene que estar dada en notación DECIMAL y no en SEXADECIMAL (Grados, minutos... etc) | |
| * @param type $latitud 1 | |
| * @param type $longitud 1 | |
| * @param type $latitud 2 | |
| * @param type $longitud 2 | |
| * @return type, Distancia en Kms, con 1 decimal de precisión | |
| */ | |
| function GetGeoDistancia($lat1, $long1, $lat2, $long2){ | |
| //Distancia en kilometros en 1 grado distancia. | |
| //Distancia en millas nauticas en 1 grado distancia: $mn = 60.098; | |
| //Distancia en millas en 1 grado distancia: 69.174; | |
| //Solo aplicable a la tierra, es decir es una constante que cambiaria en la luna, marte... etc. | |
| $km = 111.302; | |
| //1 Grado = 0.01745329 Radianes | |
| $degtorad = 0.01745329; | |
| //1 Radian = 57.29577951 Grados | |
| $radtodeg = 57.29577951; | |
| //La formula que calcula la distancia en grados en una esfera, llamada formula de Harvestine. Para mas informacion hay que mirar en Wikipedia | |
| //http://es.wikipedia.org/wiki/F%C3%B3rmula_del_Haversine | |
| $dlong = ($long1 - $long2); | |
| $dvalue = (sin($lat1 * $degtorad) * sin($lat2 * $degtorad)) + (cos($lat1 * $degtorad) * cos($lat2 * $degtorad) * cos($dlong * $degtorad)); | |
| $dd = acos($dvalue) * $radtodeg; | |
| return round(($dd * $km), 2); | |
| } |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment