У меня есть minLat, minLong, maxLat и maxLong из коробки, нарисованной на карте. Прямо сейчас мой запрос на получение всех точек в поле выглядит так:
SELECT *
FROM geomTable
WHERE (longitude BETWEEN minLon AND maxLon)
AND (latitude BETWEEN minLat AND maxLat)
Я хочу использовать столбец геометрии вместо столбцов lat / long, чтобы получить результаты. Я пробовал этот запрос:
SELECT *
FROM mytable
WHERE mytable.geom && ST_MakeEnvelope(minLon, minLat, maxLon, maxLat, 4326);
из этого сообщения: выберите ограничивающий прямоугольник с помощью postgis, но он не возвращает результатов.
У кого-нибудь есть пример того, как выбрать все точки внутри поля, созданного min и max lat / longs, используя геометрию в postgis?
geomTable
и полеmytable.geom
?Ответы:
Ваши данные не в широте / долготе, поэтому вам нужно поместить ваш ящик в координатное пространство ваших данных:
источник