Mysql
 sql >> база данни >  >> RDS >> Mysql

PHP / MySQL - Намерете всички елементи в радиус от 500 метра от действителните GPS координати

Изчисляването на разстоянието между две координати всъщност не е толкова трудно, като се има предвид формулата на хаверсинус.

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

Препоръчан отговор

Необходими промени от оригиналния отговор:

  1. Константата, предложена в оригиналния отговор, предоставя стойностите за мили или километри. Промених константата тук за работа с измервателни уреди.

  2. Константите са се променили, за да използват вашите координати. Може да искате да адаптирате заявката още малко, за да направите тези параметри вместо константи.

  3. having изражението се промени малко, за да отрази желанието ви за 500 метра. Отново, това може да е нещо, което искате да параметризирате.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Добавете персонализирано скрито поле във формата на paypal и го вземете на пренасочена страница

  2. Как да върнете резултатите от заявката като списък, разделен със запетая в MySQL

  3. Ще бъде ли singleton добър модел на дизайн за сайт за микроблогове?

  4. MySQL Сортиране по 2 колони

  5. Mac OS X - EnvironmentError:mysql_config не е намерен