Ponieważ twoje współrzędne są przechowywane w kolumnach x,y, musisz użyć ST_MakePoint
aby stworzyć odpowiednią geometrię. Następnie możesz utworzyć BBOX za pomocą funkcji ST_MakeEnvelope
i sprawdź, czy współrzędne początkowe i końcowe znajdują się w BBOX, używając ST_Contains
, np.
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));
Uwaga: CTE
nie jest tak naprawdę konieczne i znajduje się w zapytaniu tylko w celach ilustracyjnych. Możesz powtórzyć ST_MakeEnvelope
funkcja na obu warunkach w WHERE
klauzula zamiast bbox.geom
. To zapytanie zakłada również SRS WGS84
(4326).