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

Erhalten Sie Ergebnisse von mysql basierend auf Breiten- und Längengraden

Sie können eine Entfernung mithilfe eines sphärischen Kosinusgesetzes berechnen :

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) - Grad in Radiant
ACOS(X ) - der Arkuskosinus von X, also der Wert, dessen Kosinus X ist
GRAD(X) - Bogenmaß in Grad

60 - Minuten in Grad
1,1515 - Meilen in einer Seemeile
1,609344 - Kilometer in einer Meile