sql >> Database >  >> RDS >> Mysql

Krijg resultaten van mysql op basis van breedtegraad en lengtegraad

U kunt een afstand berekenen met behulp van een Sferische cosinusregel :

SELECT DEGREES(ACOS(SIN(RADIANS(clients.latitude)) * SIN(RADIANS(schools.latitude)) + 
                    COS(RADIANS(clients.latitude)) * COS(RADIANS(schools.latitude)) 
                                                   * COS(RADIANS(clients.longitude 
                                                               – schools.longitude)))) 
       * 60 * 1.1515 * 1.609344 AS distance
FROM clients, schools HAVING distance < $radius

RADIANS(X) - graden naar radialen
ACOS(X ) - de boogcosinus van X, dat wil zeggen de waarde waarvan de cosinus X is
GRADEN(X) - radialen naar graden

60 - minuten in een graad
1,1515 - mijl in een nautische mijl
1,609344 - kilometers in een mijl




  1. MySQL-gegevensbron verschijnt niet in Visual Studio

  2. MySQL 5.5 partitietabel door A-Z

  3. MySQL-database importeren in een MS SQL Server

  4. Is er een MySQL-equivalent van sprintf?