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

MySQL избира координати в обхват

Можете да използвате това, което се нарича формулата на Haversine .

$sql = "SELECT *, ( 3959 * acos( cos( radians(" . $lat . ") ) * cos( radians( lat ) ) * cos( radians( lng ) - radians(" . $lng . ") ) + sin( radians(" . $lat . ") ) * sin( radians( lat ) ) ) ) AS distance FROM your_table HAVING distance < 5";

Където $lat и $lng са координатите на вашата точка, а lat/lng са колоните на вашата таблица. Горното ще изброи местоположенията в рамките на 5 nm диапазон. Заменете 3959 от 6371 за промяна на километри.

Тази връзка може да бъде полезна:https://developers.google.com/maps/articles/phpsqlsearch_v3

Редактиране:Не видях да споменавате Java. Този пример е в PHP, но заявката все още е това, от което се нуждаете.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Въведение в SQL индексите

  2. Как се прави моделиране на наследяване в релационни бази данни?

  3. Enum в Hibernate, запазващ се като enum

  4. WEEKDAY() Примери – MySQL

  5. Изключение в основната нишка java.sql.SQLException:Достъпът е отказан за потребител ''@'localhost' (използвайки парола:НЕ)