Bạn có thể tính khoảng cách bằng cách sử dụng Luật hình cầu của cosin :
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)
- độ sang radian
ACOS (X )
- cosin cung của X, nghĩa là giá trị có cosin là X
DEGREES (X)
- radian sang độ
60 - phút ở độ
1,1515 - dặm trong hải lý
1.609344 - ki lô mét trong một dặm