2013-03-21 1 views
0

В ror предположим, что у меня есть список данных, привязанных к географии, в моей базе данных (каждая запись имеет столбцы широты и долготы). Каков наилучший способ реализации поиска по-умолчанию, дистанционная функция?Лучший способ поиска по расстоянию в рубине на рельсах

Мне известно о геоките для рубина. Но я ищу другие предложения. Если это зависит от платформы, я планирую использовать герою в качестве платформы развертывания.

ответ

1

вы проверили rubygeocoder gem,

прочитать о distance queries

После является great screencast by ryan

+0

Великих ссылок! Я думаю, что это помогло бы будущим читателям этого вопроса, если бы вы могли дать немного больше контекста для каждого из них, в соответствии с принципами ответа StackOverflow: http://stackoverflow.com/help/how-to-answer – rossettistone

1

Используйте камень Geocoder.

Как указано в documentation -

Geocoder представляет собой комплексное решение для геокодирования Ruby. В Rails добавляется геокодирование (по улице или IP-адресу), обратное геокодирование (найти улицу адрес на основе заданных координат) и запросы расстояния. Это как простой, как вызов геокодирования на ваших объектах, а затем с помощью области, как Venue.near («Биллингс, MT»).

С геокодированными объектами вы можете сделать что-то вроде этого:

if obj.geocoded? 
    obj.nearbys(30)      # other objects within 30 miles 
    obj.distance_from([40.714,-100.234]) # distance from arbitrary point to object 
    obj.bearing_to("Paris, France")  # direction from object to arbitrary point 
end 
Смежные вопросы