рельсы геокодер вблизи области - PullRequest
1 голос
/ 18 мая 2011

Есть ли способ получить, например, десять ближайших мест, независимо от того, насколько велико расстояние от объекта?

Obj.near(@address, 10)

И эта область должна возвращать 10 ближайших мест, а не объекты в радиусе 10.

1 Ответ

1 голос
/ 18 мая 2011

Я бы посоветовал взглянуть на GeoRuby и пространственный_адаптер .Если вы не хотите загружать много данных из вашей базы данных, а затем самостоятельно выполнять сравнение расстояний, я бы посоветовал вам использовать PostgreSQL в качестве движка БД, поскольку он имеет отличную поддержку Geo / GIS.Объединение этих трех значений означает, что при условии, что вы можете передать объект GeoRuby в качестве @address, область видимости, примерно такая, как показано ниже, сделает нужную вам работу

scope :near lambda { |location, count| order("ST_Distance(geom_field_in_table, ST_GeomFromWKB(#{location.as_wkb}, -1))").limit(count) }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...