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

PostgreSQL:hiển thị các chuyến đi trong một hộp giới hạn

Vì tọa độ của bạn được lưu trữ trong các cột x, y, bạn phải sử dụng ST_MakePoint để tạo ra một hình học thích hợp. Sau đó, bạn có thể tạo BBOX bằng hàm ST_MakeEnvelope và kiểm tra xem tọa độ đầu và cuối có nằm trong BBOX hay không bằng cách sử dụng ST_Contains , ví dụ:

WITH bbox(geom) AS (
  VALUES (ST_MakeEnvelope(-8.68494,41.24895,-8.47569,41.11591,4326))
)
SELECT * FROM trips,bbox
WHERE 
  ST_Contains(bbox.geom,ST_SetSRID(ST_MakePoint(lon_start,lat_start),4326)) AND
  ST_Contains(bbox.geom,ST_SetSRID(ST_MakePoint(lon_end,lat_end),4326));

Lưu ý: CTE không thực sự cần thiết và nằm trong truy vấn chỉ nhằm mục đích minh họa. Bạn có thể lặp lại ST_MakeEnvelope hoạt động trên cả hai điều kiện trong WHERE mệnh đề thay vì bbox.geom . Truy vấn này cũng giả định SRS WGS84 (4326).



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Cú pháp truy vấn PostgreSQL LEFT OUTER JOIN

  2. chọn một cột dựa trên giá trị tối thiểu của một cột khác

  3. Làm thế nào để đặt tiền tố tên chuỗi?

  4. Làm cách nào để chèn vào tên bảng dưới dạng bí danh bằng trình trợ giúp chèn pg-promise?

  5. Lặp qua các cột của RECORD