En PHP, tengo el siguiente código para calcular la distancia entre dos lugares:PHP/MySQL: Seleccione en los alrededores de un lugar determinado de DB
<?php
function distance($lat1, $long1, $lat2, $long2) {
// DEGREE TO RADIAN
$latitude1 = $lat1/180*pi();
$longitude1 = $long1/180*pi();
$latitude2 = $lat2/180*pi();
$longitude2 = $long2/180*pi();
// FORMULA: e = ARCCOS (SIN(Latitude1) * SIN(Latitude2) + COS(Latitude1) * COS(Latitude2) * COS(Longitude2-Longitude1)) * EARTH_RADIUS
$distance = acos(sin($latitude1)*sin($latitude2)+cos($latitude1)*cos($latitude2)*cos($longitude2-$longitude1))*6371;
return $distance;
}
echo distance(9.9921962, 53.5534074, 9.1807688, 48.7771056); // Hamburg, DE - Stuttgart, DE
?>
Pero ahora, quiero seleccionar los alrededores de una dada la ubicación a través de PHP de mi base de datos MySQL:
- el usuario entra en su ciudad natal
- mi script obtiene los valores de latitud/longitud a través de la API de Google
- En mi base de datos, tengo alrededor de 200 lugares con un campo para el valor de latitud y un campo para el valor de longitud
- Necesito un código para PHP y MySQL para seleccionar los 10 lugares que están más próximas a la ciudad natal del usuario
Espero que puedas ayudarme. ¡Gracias por adelantado!
Gracias, como dijo nOw2, es la fórmula de Haversine. Tengo la implementación de PHP todavía, veo el código en mi pregunta. – caw