PostgreSQL
 sql >> Teknologi Basis Data >  >> RDS >> PostgreSQL

PostgreSQL:tampilkan perjalanan dalam kotak pembatas

Karena koordinat Anda disimpan dalam kolom x,y, Anda harus menggunakan ST_MakePoint untuk membuat geometri yang tepat. Setelah itu, Anda dapat membuat BBOX menggunakan fungsi ST_MakeEnvelope dan periksa apakah koordinat awal dan akhir ada di dalam BBOX menggunakan ST_Contains , misalnya

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));

Catatan: CTE tidak benar-benar diperlukan dan dalam kueri hanya untuk tujuan ilustrasi. Anda dapat mengulangi ST_MakeEnvelope fungsi pada kedua kondisi di WHERE klausa alih-alih bbox.geom . Kueri ini juga mengasumsikan 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. Masa Depan Postgres-XL

  2. Peningkatan multi-nilai PostgreSQL

  3. Ubah jenis kolom dan atur bukan null

  4. Tidak dapat menemukan kolom dengan nama logis

  5. Dapatkan jalur dari database poin di sql