2011-05-18 50 views

回答

1

我建议考虑看看GeoRubyspatial_adapter内恢复10米最近的地方,而不是对象。除非你想从你的数据库加载大量数据,然后自己进行距离比较,否则我会建议你使用PostgreSQL作为数据库引擎,因为它具有很好的Geo/GIS支持。把三者结合在一起意味着假设你可以通过一个GeoRuby对象作为你的地址,一个类似如下的范围可以完成你需要的工作

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