【问题标题】:Update latitude and longitude for all records in rails app更新rails应用程序中所有记录的纬度和经度
【发布时间】:2014-03-06 20:57:02
【问题描述】:

我有一个事件模型,当在表单中输入地址并提交时,它会将地址地理编码为纬度和经度,并将这些值保存在事件记录中。

为了打击不进入奥斯汀和德克萨斯州的城市和州的人,我在我的事件模型中添加了一个方法并将其更改为 geocoded_by :full address

def full_address
  addr = self.address
  addr += ' Austin ' unless addr.include?('Austin')
  addr += ' Texas ' unless addr.include?('Texas')
  addr
end

这适用于提交的新事件。但是,我有一些事件需要对此进行测试,并在数据库中相应地更新它们的纬度和经度。

寻找有关如何完成此操作的信息。

【问题讨论】:

    标签: ruby-on-rails activerecord geocoding


    【解决方案1】:

    鉴于您有地址错误的现有记录,并且您可以运行该条目没有地理编码:

    rake geocode:all CLASS=YourModel
    

    见:http://rubydoc.info/gems/rails-geocoder/0.9.10/file/README.rdoc

    如果没有“德克萨斯州奥斯汀”的条目已经进行了地理编码(但不正确),您可以搜索所有不包含奥斯汀/德克萨斯州的地址并重新对其进行地理编码。

    或者,如果没有那么多条目,您可以简单地重置所有存储的纬度/经度位置,然后再次运行 rake geocode:all 命令。

    【讨论】:

    • 那么我能做到吗:Event.update_all({:longitude => nil}, {:latitude => nil}) 然后 rake geocode:all CLASS=Event ?
    • 我想我应该在发表评论之前进行测试 :) 对我来说非常有效。谢谢@gernberg!
    • 326。相当无痛。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-07-15
    • 1970-01-01
    • 2014-08-06
    • 1970-01-01
    • 2023-03-26
    • 2021-10-10
    相关资源
    最近更新 更多