Mysql
 sql >> Base de données >  >> RDS >> Mysql

Géocodeur Google Maps pour trouver des lieux à proximité à partir de la base de données MySQL

rayon de recherche :

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 est le rayon de la Terre en miles. Remplacez cette valeur par un rayon en KM, ou n'importe quelle unité, pour obtenir des résultats sur la même unité.centerLat et centerLon sont le centre de la recherche (votre saisie), tandis que lat et lon sont les champs de la table.