【问题标题】:rails geocoder near scope范围附近的导轨地理编码器
【发布时间】:2011-05-18 15:33:45
【问题描述】:

有没有办法得到例如十个最近的地方,不管离物体有多远?

Obj.near(@address, 10)

这个范围应该返回 10 个最近的地方,而不是半径 10 内的对象。

【问题讨论】:

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


    【解决方案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) }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2023-03-07
      • 1970-01-01
      • 2014-05-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多