Поскольку ваши координаты хранятся в столбцах x, y, вы должны использовать ST_MakePoint
для создания правильной геометрии. После этого вы можете создать BBOX с помощью функции ST_MakeEnvelope
и проверить, находятся ли начальные и конечные координаты внутри BBOX, используя ST_Contains
, например
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));
Примечание: CTE
на самом деле не является необходимым и находится в запросе только в целях иллюстрации. Вы можете повторить функцию ST_MakeEnvelope
для обоих условий в предложении WHERE
вместо bbox.geom
. Этот запрос также предполагает SRS WGS84
(4326).