Vous pouvez calculer une distance en utilisant une loi sphérique des cosinus :
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)
- degrés en radians
ACOS(X )
- l'arc cosinus de X, c'est-à-dire la valeur dont le cosinus est X
DEGRÉS(X)
- radians en degrés
60 - minutes dans un degré
1,1515 - miles dans un mile nautique
1,609344 - kilomètres dans un mile