轨道地理编码器附近的范围

时间:2011-05-18 15:33:45

标签: ruby-on-rails google-maps geolocation geocoding

有没有办法获得,例如,十个最近的地方,无论距物体有多远?

Obj.near(@address, 10)

此范围应返回10个最近的位置,而不是半径10内的对象。

1 个答案:

答案 0 :(得分:1)

我建议您查看GeoRubyspatial_adapter。除非您想从数据库加载大量数据然后自己进行距离比较,否则我建议您使用PostgreSQL作为数据库引擎,因为它具有很好的地理/ GIS支持。将三者放在一起意味着假设你可以将一个GeoRuby对象作为你的@address传递,一个类似下面的范围可以完成你需要的工作

scope :near lambda { |location, count| order("ST_Distance(geom_field_in_table, ST_GeomFromWKB(#{location.as_wkb}, -1))").limit(count) }