Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

MySQL chọn tọa độ trong phạm vi

Bạn có thể sử dụng cái được gọi là công thức 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";

Ở đâu $lat$lng là tọa độ của điểm và vĩ độ / lng là các cột trong bảng của bạn. Ở trên sẽ liệt kê các vị trí trong phạm vi 5 nm. Thay thế 3959 bởi 6371 để đổi sang ki lô mét.

Liên kết này có thể hữu ích: https://developers.google.com/maps/articles/phpsqlsearch_v3

Chỉnh sửa:Tôi không thấy bạn đề cập đến Java. Ví dụ này bằng PHP nhưng truy vấn vẫn là thứ bạn cần.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Làm cách nào để lập lịch truy vấn MySQL?

  2. Ví dụ ORD () - MySQL

  3. Cách thu hút người dùng mới mỗi ngày trong MySQL

  4. Làm cách nào để lấy kích thước của các bảng trong cơ sở dữ liệu MySQL?

  5. Sắp xếp trong MySQL bằng cách sử dụng thứ tự theo mệnh đề