sql >> Database >  >> RDS >> Mysql

Google Maps geocoder om plaatsen in de buurt te vinden vanuit de MySQL-database

straal zoeken:

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 is de straal van de aarde in mijlen. Vervang deze waarde door straal in KM, of een andere eenheid, om resultaten op dezelfde eenheid te krijgen.centerLat en centerLon zijn het middelpunt van de zoekopdracht (yourinput), terwijl lat en lon velden in de tabel zijn.



  1. Controleer of ipv6 binnen bereik is

  2. SQL-dialect is niet geconfigureerd (Phpstorm)

  3. Goed databaseontwerp, variabel aantal attributen

  4. com.mysql.jdbc.exceptions.jdbc4.CommunicationsException:communicatieverbinding mislukt