sql >> Base de Datos >  >> RDS >> Mysql

Obtener resultados de mysql según la latitud longitud

Puedes calcular una distancia usando una Ley esférica de los cosenos :

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

RADIANES(X) - grados a radianes
ACOS(X ) - el arcocoseno de X, es decir, el valor cuyo coseno es X
GRADOS(X) - radianes a grados

60 - minutos en un grado
1,1515 - millas en una milla náutica
1.609344 - kilómetros en una milla