GEOCODER:获取用户地理位置以在rails 3中生成具有位置属性的状态更新

时间:2013-12-08 14:19:29

标签: ruby-on-rails devise blogs rails-geocoder

我是RoR的新手(目前使用的是Ruby 1.9.3和Rails 3.2.16)。在过去的几天里,我已经阅读了很多关于如何使用rails的教程和电子书。

现在我想为多个用户(我和我的朋友的旅行日志)创建某种博客,自动获取用户位置(IP地址)。这应该用于编写自动继承用户位置的状态更新。但它应该在一定时间内更新用户位置,以确保用户何时移动下一个状态更新将获得不同的位置。例如用户1:“我在超市” - 纽约第四大道 .... 10分钟后用户1:“现在我站在街区的公交车站” - 纽约第五大道

其他功能应该是.find或.where方法,以显示在实际用户位置附近的特定位置发出的所有状态。

我知道如何使用设计和添加状态模型制作一个简单的博客,但我不知道如何将地理编码功能实现到该博客中。计划使用https://github.com/alexreisner/geocoder进行整个地理编码过程。

我希望你的一些RoR专业人员可以帮助我解决这个问题,或者至少给我一个如何实现它的提示:))

修改 我想我找到了一个符合我需求的教程。只有两件事。我不想要包含地图,我想将地理数据(location,lat和lng)存储在数据库中。谁能告诉我我可以删除哪部分代码以及如何将json解析到“位置”数据库? http://de.slideshare.net/nebirhos/geolocation-on-rails

1 个答案:

答案 0 :(得分:1)

您应该考虑客户端地理编码与服务器端。你需要做一个反向地理编码;这是用纬度和经度抓取用户的位置并将其转换为地址。

因此,基本上您可以在构建应用程序后担心这一点。

如果您使用地理编码器路线,则包含纬度和经度字段以及IP地址。用户也可以通过ip进行地理编码。

因此,为简单起见,您说目前有一个Post模型。该帖子通常会有一个

    ipaddress:string title:string post:string latitude:string longitude:string

Ruby Geocoder对我很有帮助,但我计划在下一个重构方面做客户端。

以下是 Google推荐的地理编码策略。这可能非常有用

https://developers.google.com/maps/articles/geocodestrat

编辑 用户需要更多信息

以下是Ruby Geocoder在用户模型上的ip请求示例:

的应用程序/模型/ user.rb

    geocoded_by :ip_address,
   :latitude => :lat, :longitude => :lon
   after_validation :geocode

在主网站上查看大量有用信息:http://www.rubygeocoder.com/

还可以看看railscasts Geocoder Video。由于您使用旧版本的ruby和rails,这些资源应该特别有用。 9块钱将是值得的。

http://railscasts.com/episodes/273-geocoder