У меня есть приложение для рельсов 3 с драгоценным камнем геокодера. Когда пользователь создает учетную запись на моем веб-сайте, он дает мне свой адрес. С геокодером я хранил его lat и его lng в моей базе данных, чтобы я мог разместить его на карте google.Сортировать пользователей по ближе
Когда пользователь выполняет поиск, он должен найти для него самых близких пользователей.
На данный момент я вычислить радиус с геокодером найти пользователь в нем:
bounds_calc = Geocoder::Calculations.bounding_box(center, radius, units: :km)
users = User.where('? < addresses.lat AND addresses.lat < ?', bounds_calc[0], bounds_calc[2]).where('? < addresses.lng AND addresses.lng < ?', bounds_calc[1], bounds_calc[3])
То, что я хочу сделать, это сортировать users
от ближайшего к самому дальнему. Есть ли простой способ сделать это?
Возможно, этот драгоценный камень может вам помочь: https://github.com/geokit/geokit-rails. – JoJoS
Я думаю, что если вы используете User.near, результаты будут автоматически отсортированы по расстоянию ... – sailor
Вы вычисляете * ограничивающий прямоугольник * и выбираете пользователей в этом поле. – Stefan