根据铁轨上红宝石的距离进行搜索的最佳方式

时间:2013-03-21 10:25:36

标签: ruby-on-rails ruby search geospatial

在ror中,假设我的数据库中有一个地理参考数据列表 (每个记录都有纬度和经度列)实现搜索远距离功能的最佳方法是什么?

我知道红宝石的geokit。但我正在寻找其他建议。 如果它是依赖于平台的,我计划使用heroku作为部署平台。

2 个答案:

答案 0 :(得分:1)

答案 1 :(得分:1)

使用gem Geocoder。

documentation -

中所述
  

Geocoder是Ruby的完整地理编码解决方案。随着Rails的增加   地理编码(通过街道或IP地址),反向地理编码(找街道   基于给定坐标的地址)和距离查询。就是这样   就像在对象上调用地理编码一样简单,然后使用像这样的范围   Venue.near(“Billings,MT”)。

使用地理编码对象,您可以执行以下操作:

if obj.geocoded?
  obj.nearbys(30)                      # other objects within 30 miles
  obj.distance_from([40.714,-100.234]) # distance from arbitrary point to object
  obj.bearing_to("Paris, France")      # direction from object to arbitrary point
end