Puoi calcolare una distanza usando una legge sferica dei coseni :
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)
- gradi in radianti
ACOS(X )
- l'arcocoseno di X, ovvero il valore il cui coseno è X
GRADI(X)
- radianti in gradi
60 - minuti in una laurea
1,1515 - miglia in un miglio nautico
1.609344 - chilometri in un miglio