【问题标题】:GEOCODER: Fetching User Geolocation to generate status updates with location attributes in rails 3GEOCODER:获取用户地理位置以在 rails 3 中生成具有位置属性的状态更新
【发布时间】:2013-12-08 14:19:28
【问题描述】:

我对 RoR 完全陌生(目前使用 Ruby 1.9.3 和 Rails 3.2.16)。在过去的几天里,我阅读了很多关于如何使用 Rails 的教程和电子书。

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

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

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

我希望你们的一些 RoR 专家可以帮助我解决这个问题,或者至少给我一个提示:))

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

【问题讨论】:

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


    【解决方案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 请求示例:

    app/models/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

    【讨论】:

    • 感谢您的快速响应:) 是的,我的帖子模型看起来完全一样,我唯一不明白的是我必须在哪里实现 request.ip 或 request.address 命令才能获得一些可以存储在 post 模型中的数据? :) 一个简短的代码示例会非常好。编辑:我目前正在通过 jqeury 阅读有关地理编码的内容,以获取和查看用户位置。这比使用简单的地理编码器 gem 更推荐吗?
    • 是的,几乎总是推荐使用 javascript 客户端。这是关于地理编码的谷歌部分:developers.google.com/maps/documentation/geocoding/…
    • @user3079933,我已经用更多细节更新了我的答案。我稍后会检查这个,有一些事情要做。此外,如果您正在就客户端与服务器端进行辩论,这个 google 策略是一个很好的起点:developers.google.com/maps/articles/geocodestrat - 随时通知我,我们很乐意一路为您提供帮助!编码愉快!
    猜你喜欢
    • 2011-09-13
    • 2016-06-12
    • 2012-10-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-15
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多