Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Google Maps-Geocoder, um Orte in der Nähe aus der MySQL-Datenbank zu finden

Umkreissuche:

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 ist der Erdradius in Meilen. Ersetzen Sie diesen Wert durch den Radius in km oder einer anderen Einheit, um Ergebnisse für dieselbe Einheit zu erhalten.centerLat und centerLon sind das Zentrum der Suche (Ihre Eingabe), während lat und lon Felder in der Tabelle sind.