【问题标题】:Confused on how to setup Geokit对如何设置 Geokit 感到困惑
【发布时间】:2019-09-25 19:30:44
【问题描述】:

所以我在 Geokit 上搜索了所有关于 rails 的文档,除了安装我知道如何做的 gem 之外,没有找到任何设置过程。我应该将哪些表添加到现有的“列表”表中?

就像我说的那样,安装它。我已将acts_as_mappable 添加到列表红宝石文件中。

class Listing < ApplicationRecord
  acts_as_mappable
end
gem 'geokit-rails'

如果有一个关于如何设置整个事情的视频教程会很好。

【问题讨论】:

    标签: ruby-on-rails ruby-on-rails-3 ruby-on-rails-4 ruby-on-rails-5 geokit


    【解决方案1】:

    您需要在列表模型中添加 lat 和 lng 字段。你可以这样做:

    rails g migration add_lat_lng_to_listings lat:decimal lng:decimal

    然后迁移:

    rails db:migrate

    拥有这些字段后,您应该能够执行以下操作:

    Listing.in_range(1..35, origin: [29.794664, -98.731970])

    【讨论】:

    • 如果我理解正确,1..35 是英里距离?
    • @TimofeyABogdanov 是的!
    • returns: "Listing id: 14, title: "iPhone 6s Plus", description: "$100", created_at: "2019-09-26 18:02:28", updated_at: "2019- 09-26 18:02:28", user_id: 1, lat: nil, lng: nil"
    • @TimofeyABogdanov 您需要在保存记录之前设置 lat 和 lng。您可以通过从请求对象中获取 IP 地址在控制器中执行此操作,然后使用 Geokit 从中获取坐标。在创建方法中设置@listing = Listing.new(listing_params) 后,您可以在其下方添加@listing.lat = Listing.geocode(request.ip).lat@listing.lng = Listing.geocode(request.ip).lng。这只是你可以走的一种方式。您还可以允许用户输入他们的地址,然后使用 Geokit 将地址转换为 lat 和 lng 坐标。希望有帮助!
    • 作为一个快速说明,使用request.ip 可能不会在本地主机上工作。也许只是用占位符 IP 地址替换它以进行一些快速测试。
    猜你喜欢
    • 1970-01-01
    • 2012-05-03
    • 2011-12-30
    • 1970-01-01
    • 2019-09-13
    • 2012-07-22
    • 2013-05-13
    • 2020-04-16
    • 2023-03-08
    相关资源
    最近更新 更多