Я создаю приложение Ruby на Heroku с использованием Sinatra и базы данных PostgreSQL, сопряженной с ObjectMapper. Мне нужно выполнить запрос, который возвращает список всех местоположений в базе данных (каждое из которых имеет атрибуты широты и долготы) в пределах определенного прямоугольника (соответствующего видимой области карты).
Я могу сделать это путем поиска широт, которые попадают в границы карты, то же самое для долготы. Мой вопрос, однако, как я могу вернуть эти результаты, отсортированные по близости? Я мог бы получить все результаты, соответствующие запросу, и затем отсортировать их, как только они вышли из базы данных, но я хочу выполнить этот запрос пакетами и вернуть только, скажем, 5 ближайших мест, затем места 6-10, затем 11-15 и т. Д. .
Можно ли это сделать?
РЕДАКТИРОВАТЬ: Я еще не решил, использовать ли PostgreSQL наверняка, я мог бы использовать MongoDB, если это уместно.