范围附近的导轨地理编码器
Posted
技术标签:
【中文标题】范围附近的导轨地理编码器【英文标题】:rails geocoder near scope 【发布时间】:2011-05-18 15:33:45 【问题描述】:有没有办法得到例如十个最近的地方,不管离物体有多远?
Obj.near(@address, 10)
这个范围应该返回 10 个最近的地方,而不是半径 10 内的对象。
【问题讨论】:
【参考方案1】:我建议看看GeoRuby 和spatial_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)
【讨论】:
以上是关于范围附近的导轨地理编码器的主要内容,如果未能解决你的问题,请参考以下文章