PHP:¿Puedo saber la distancia de una coordenada a otra?
De Foros del Web
usando la siguiente función:
Código PHP:
<? #By nicolaspar 2007 function distancia($latitud1, $longitud1, $latitud2, $longitud2, $millas = true){ $pi180 = M_PI / 180; #Transformo las coordenadas en radiales $latitud1 *= $pi180; $longitud1 *= $pi180; $latitud2 *= $pi180; $longitud2 *= $pi180; $r = 6378.139; // radio medio de tierra por kilómetro (WGS84) $distanciaLatitud = $latitud2 - $latitud1; $distanciaLongitud = $longitud2 - $longitud1; #Formula de Haversine $a = sin($distanciaLatitud / 2) * sin($distanciaLatitud / 2) + cos($latitud1) * cos($latitud2) * sin($distanciaLongitud / 2) * sin($distanciaLongitud / 2); #Calculo la distancia $c = 2 * atan2(sqrt($a), sqrt(1 - $a)); $km = $r * $c; #La saco en millas o en km return $millas ? $km * 0.621371192 : $km; } /** * Ej, * Desde Buenos Aires Observatorio Lat -34.56667 | long -58.41667 * Hasta Adelaide Airport, Oceania, Australia, Lat -34.93333 | Long 138.51667 **/ echo distancia(-34.56667, -58.41667, -34.93333, 138.51667, false) ." Km<br />"; echo distancia(-34.56667, -58.41667, -34.93333, 138.51667) ." Millas"; ?>
--nicolaspar 05 Jun 2007
Este artículo es parte de las FAQs de PHP y el Manual de PHP.
- Indice de las FAQs: Conceptos, Configuración, Formularios, Manejo de Archivos, Integración con Bases de Datos, Sesiones, Extensiones y Librerías, Seguridad, Funciones, Clases y Objetos, Frameworks
- Recomendamos también: Guía Zend, Frameworks PHP, Aceleradores PHP
- Agregar al FAQ: PHP: Instrucciones para agregar una pregunta al FAQ de PHP
- Para preguntas sobre PHP: Foro de Php
