Buscar ubicaciones cercanas con MySQL
Aquí está la instrucción SQL que encontrará las 20 ubicaciones más cercanas que se encuentran dentro de un radio de 25 millas a la coordenada 37, -122. Calcula la distancia en función de la latitud/longitud de esa fila y la latitud/longitud de destino, y luego solicita solo las filas donde el valor de distancia es inferior a 25, ordena toda la consulta por distancia y la limita a 20 resultados. Para buscar por kilómetros en lugar de millas, reemplace 3959 con 6371.
Estructura de la tabla:
id,name,address,lat,lng
NOTA - Aquí latitud =37 y longitud =-122. Así que solo pasa el tuyo.
SELECT id, ( 3959 * acos( cos( radians(37) ) * cos( radians( lat ) ) *
cos( radians( lng ) - radians(-122) ) + sin( radians(37) ) *
sin( radians( lat ) ) ) ) AS distance FROM your_table_name HAVING
distance < 25 ORDER BY distance LIMIT 0 , 20;
Puede encontrar detalles aquí .