在 ror 中,假设我的数据库中有一个地理参考数据列表(每条记录都有纬度和经度列)实现按距离搜索功能的最佳方法是什么?
我知道用于 ruby 的 geokit。但我正在寻找其他建议。如果它依赖于平台,我计划使用 heroku 作为部署平台。
在 ror 中,假设我的数据库中有一个地理参考数据列表(每条记录都有纬度和经度列)实现按距离搜索功能的最佳方法是什么?
我知道用于 ruby 的 geokit。但我正在寻找其他建议。如果它依赖于平台,我计划使用 heroku 作为部署平台。
使用 gem 地理编码器。
如文档中所述-
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