sql >> Base de Datos >  >> RDS >> Mysql

Geocodificador de Google Maps para encontrar lugares cercanos desde la base de datos MySQL

búsqueda por radio:

select *,
    acos(cos(centerLat * (PI()/180)) *
     cos(centerLon * (PI()/180)) *
     cos(lat * (PI()/180)) *
     cos(lon * (PI()/180))
     +
     cos(centerLat * (PI()/180)) *
     sin(centerLon * (PI()/180)) *
     cos(lat * (PI()/180)) *
     sin(lon * (PI()/180))
     +
     sin(centerLat * (PI()/180)) *
     sin(lat * (PI()/180))
    ) * 3959 as Dist
from TABLE_NAME
having Dist < radius
order by Dist

3959 es el radio de la Tierra en millas. Reemplace este valor con radio en KM, o cualquier unidad, para obtener resultados en la misma unidad. centerLat y centerLon son el centro de la búsqueda (su entrada), mientras que lat y lon son campos en la tabla.