Mysql
 sql >> Baza danych >  >> RDS >> Mysql

PHP / MySQL - Znajdź wszystkie elementy w promieniu 500 metrów od rzeczywistych współrzędnych GPS

Obliczenie odległości między dwiema współrzędnymi nie jest w rzeczywistości takie trudne, biorąc pod uwagę formułę 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

Odpowiedź, do której odwołuje się

Niezbędne zmiany w stosunku do oryginalnej odpowiedzi:

  1. Stała podana w oryginalnej odpowiedzi dostarczała wartości w milach lub kilometrach. Zmieniłem tutaj stałą, aby pracować z licznikami.

  2. Stałe zmieniły się, aby używać twoich współrzędnych. Możesz chcieć nieco bardziej dostosować zapytanie, aby te parametry zamiast stałych.

  3. having wyraz twarzy zmienił się trochę, aby odzwierciedlić twoje pragnienie 500 metrów. Ponownie, może to być coś, co chcesz sparametryzować.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Podzapytanie zwraca więcej niż 1 wiersz rozwiązania dla zapytania aktualizującego przy użyciu instrukcji SELECT

  2. NAPRAW:MySQL – SELECT Polecenie odrzucone użytkownikowi

  3. Typ danych Ecto lub Elixir, który mapuje do MySql BIGINT

  4. Część 1:jQuery -> MySQL -> jQuery -> HTML

  5. Kolumna binarna Python-Sqlalchemy typu HEX() i UNHEX()