2014-06-29 3 views
-1

Dans la requête ci-dessous, qu'est-ce que "cos (radians (lat)" ou "cos (radians (lng) ou" radians (lat) "? fonction faire?Rayon de recherche avec latitude et longitude avec requête SQL

SELECT id, (3959 * acos(cos(radians(37)) 
       * cos(radians(lat)) 
       * cos(radians(lng) 
       - radians(-122)) + sin(radians(37)) 
       * sin(radians(lat)))) AS distance 
FROM markers 
HAVING distance < 25 
ORDER BY distance LIMIT 20 OFFSET 0; 
+0

http://dev.mysql.com/doc/refman/5.0/en/mathematical-functions.html#function_radians – Noel

Répondre

2

les fonctions circulaires ici (cos(), sin()) prendre des angles en radians (2 * Pi radians dans un cercle), mais les angles sont en degrés (360 degrés dans un cercle), de sorte que le La fonction Radians() convertit les degrés en radians de sorte que les fonctions circulaires donnent les résultats corrects

Questions connexes