Da dine koordinater er gemt i x,y kolonner, skal du bruge ST_MakePoint
at skabe en ordentlig geometri. Derefter kan du oprette en BBOX ved hjælp af funktionen ST_MakeEnvelope
og kontroller, om start- og slutkoordinater er inde i BBOX'en ved hjælp af ST_Contains
, f.eks.
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));
Bemærk: CTE
er egentlig ikke nødvendigt og er i forespørgslen kun til illustrationsformål. Du kan gentage ST_MakeEnvelope
funktion på begge betingelser i WHERE
klausul i stedet for bbox.geom
. Denne forespørgsel antager også SRS WGS84
(4326).