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