postgis Как найти результаты в заданной ограничительной рамке, которые находятся близко к центру? - PullRequest
0 голосов
/ 14 февраля 2020

Я изучаю postgis и увидел, что есть ST_MakeEnvelope, которому я могу передать координаты моей ограничительной рамки:

ST_MakeEnvelope(${params.swLng},${params.swLat},${params.neLng},${params.neLat}, 4326)

Однако есть ли способ получить результаты, которые ближе всего к центру ограничительной рамки? Можно ли объединить ограничивающий прямоугольник с запросом радиуса?

1 Ответ

1 голос
/ 14 февраля 2020

Вы можете заказать на расстояние между вашей геометрией и центром тяжести конверта

SELECT *
FROM myTable
WHERE st_intersects(geom, ST_makeEnvelope(...))
ORDER BY geom <-> st_centroid(ST_makeEnvelope(...))
...