Mysql
 sql >> Base de données >  >> RDS >> Mysql

PHP / MySQL - Trouvez tous les éléments dans un rayon de 500 mètres à partir des coordonnées GPS réelles

Calculer la distance entre deux coordonnées n'est pas si difficile compte tenu de la formule haversine.

SELECT 
  -- stuff here
  , ( 6371000 * acos( cos( radians(45.815005) ) * cos( radians( stuff.lat ) ) * cos( radians( stuff.lng ) - radians(15.978501) ) + sin( radians(45.815005) ) * sin(radians(stuff.lat)) ) ) AS distance 
FROM 
  stuff
HAVING 
  distance < 500

Réponse référencée

Modifications nécessaires par rapport à la réponse d'origine :

  1. La constante proposée dans la réponse d'origine fournissait les valeurs en miles ou en kilomètres. J'ai changé la constante ici pour travailler avec les compteurs.

  2. Les constantes ont changé pour utiliser vos coordonnées. Vous voudrez peut-être adapter un peu plus la requête pour créer ces paramètres au lieu de constantes.

  3. Le having expression a un peu changé pour refléter votre désir de 500 mètres. Encore une fois, cela peut être quelque chose que vous souhaitez paramétrer.