存储&在Rails中查询位置数据(geo / gis / etc)

时间:2011-01-26 16:05:29

标签: ruby-on-rails geolocation mapkit postgis

我需要在Rails应用程序中记录和跟踪某些实体的位置。简单地说,iPhone将发布其位置(纬度/经度),Rails将存档它。然后,当查询Rails需要通过接近某个任意位置返回资源。最初的计算将是最小的(距离点的距离)。

什么是最新的,最伟大的&最简单的方法来处理这个?我知道的选项......

  1. 我可以通过捕获来强制它 纬度/经度和接近度 自己计算
  2. 这是Geokit gem / plugin虽然没有出现 自2009年以来已更新(!?!),未经Ruby 1.9.2验证。
  3. PostGIS 作为后端 数据库扩展虽然想知道什么价值 这会增加,如果它可能需要额外的开销吗?
  4. 其他?

3 个答案:

答案 0 :(得分:1)

我投票#2,GeoKit:因为它最简单,不需要部署额外的软件/搜索引擎/数据库。

Rails Geokit使用ruby 1.9.2在rails 3中工作 您只需按照此问题的说明操作: https://github.com/andre/geokit-rails/issues#issue/15

执行 tute brianlong 的建议。

此外,我提交了一个修复程序,使sort_by_distance适用于:通过关联:

https://github.com/andre/geokit-rails/issues#issue/26

答案 1 :(得分:0)

使用MongoDB是一个选项吗?它支持开箱即用的GIS东西--Mongoid让你像

一样查询它
Address.near(:position => [ 37.7, -122.4, 10 ])

有关Mongoid网站here

的更多详情

答案 2 :(得分:0)

思考Sphinx可以在lat / lon上编制索引并返回结果within a search radius