Ruby Geocoder 可以在reverse_geocode 调用中仅返回街道名称吗?

2024-02-19

The geocoder http://www.rubygeocoder.com/gem 将在保存时自动反转地理编码,如果该行after_validation :reverse_geocode包含在模型中。不过,这会导致一长串文本被保存为地址 - 格式类似于“街道名称、城市名称、县名称、州名称、邮政编码、国家/地区名称”。

我只对这个特定项目的街道名称感兴趣,所以我想知道是否有办法修改after_validation调用仅保存该信息。

如果我手动进行反向地理编码,我可以访问road结果中的值:

  place = Place.first
  result = Geocoder.search("#{place.latitude},#{place.longitude}")
  street = result[0].data['address']['road']

我可以设置我自己的习惯after_validation就是这样做的,但我不想重复功能,如果geocoder已经提供了这个。

或者,如果有一种完全不同的方式可以将纬度/经度转换为街道名称,我将有兴趣了解它。如果该选项也包含地址号或地址范围就可以了。


您可以通过提供一个块来自定义reverse_geocode方法,该块接受要进行地理编码的对象和Geocoder::Result对象的数组。

reverse_geocoded_by :latitude, :longitude do |obj,results|
  if geo = results.first
    obj.street = geo.address
  end
end

after_validation :reverse_geocode

每个 Geocoder::Result 对象(结果)提供以下数据:

result.latitude - float
result.longitude - float
result.coordinates - array of the above two
result.address - string
result.city - string
result.state - string
result.state_code - string
result.postal_code - string
result.country - string
result.country_code - string

更多信息可以在地理编码文档 https://github.com/alexreisner/geocoder。您甚至可以找到更多可以利用的领域Geocoder::Result object.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Ruby Geocoder 可以在reverse_geocode 调用中仅返回街道名称吗? 的相关文章

  • Mongoid 中的 find_or_create_by 线程安全吗?

    我有一个使用 Mongoid 的 find or create by 方法的网络应用程序 poll Poll find or create by fields 在投入生产之前 我尝试运行故障场景 我发现多个用户可以尝试使用此方法访问此资源
  • Rails 4 - 如何链接到 PDF 文件(名称.PDF)?

    我正在生成 PDF 文件 我的链接如下所示 当我点击这个时 它会带我去 display invoice 123456789 这是一个 HTML 版本 在控制器中的操作如下 def display invoice if params invo
  • 获取设备中的当前用户ID

    如何使用设备获取控制器中的当前用户 ID 在我的控制器中我有这样的东西 def index me current user c User find me sheets c time sheets end 我收到一条错误消息 无法找到没有 I
  • 使用 Fetch 和 FormData API 上传多个文件

    我正在尝试使用本机Fetch https developer mozilla org en US docs Web API Fetch API and FormData https developer mozilla org en US d
  • 在私有控制器方法中返回redirect_to

    前言 我正在使用设备进行身份验证 我试图阻止未经授权的用户查看 编辑或更新其他用户的信息 我最关心的是用户将 DOM 中的表单修改为另一个用户的 ID 填写表单 然后单击更新 我已经专门阅读过 像下面这样的东西应该有效 但事实并非如此 SO
  • 使用 Ajax 在输入时提交 Textarea,然后渲染部分内容而不刷新整个页面

    目前我正在尝试通过 JS 和 Ajax 在没有提交按钮的情况下发表评论 并且它有效 问题是当帖子提交时 页面重新加载到 post id comment页面 我希望它呈现部分内容 而不是刷新整个页面或将我带到不同的页面 我对 JS 不熟悉 任
  • 在 ec2 上托管 Rails

    我想将 Rails 部署到亚马逊 ec2 上 我看过 poolparty 和 ec2onrails 但似乎都不再维护了 人们用什么来做到这一点 都是自制的木偶和卡皮斯特拉诺 还是有一个项目可以让我继续下去 我可以推荐两个项目 如果您有一个
  • Rubymine 6 更新/刷新 Rails 项目中可用的方法和路径?

    这是一个例子 假设我更新路线resources foo这给我带来了一些新的道路 例如 new foo session当我开始在 ERB 视图中输入路径时 我希望它向我显示 建议自动完成与路径匹配的名称 当我输入 new foo 我会得到所有
  • Rails 控制台无法运行

    rbenv 红宝石版本 2 6 6 导轨版本 5 1 4 我正在较旧的代码库中工作 ruby 2 6 6 rails 5 4 1 这是我每天使用的代码库 我必须通过 rbenv 下载一个新的 ruby 版本作为单独的存储库 这样做在我的旧代
  • 测量两个字符串之间相似性的有效方法是什么? (编辑距离使堆栈太深)

    所以 我从这个开始 http en wikibooks org wiki Algorithm Implementation Strings Levenshtein distance Ruby http en wikibooks org wi
  • 仅删除多对多关系

    我有一个 has and belongs to many friends join table gt friends peoples 要添加朋友 我会这样做 people followers lt lt friend这会创建关系和新的个人资
  • Rails、REST 架构和 HTML 5:带有预检请求的跨域请求

    在致力于使我们的网站 HTML 5 友好的项目时 我们渴望采用跨域请求的新方法 不再通过隐藏的 iframe 发布 使用访问控制 http www w3 org TR access control 根据规范 我们开始设置一些测试来验证各种浏
  • 多重要求和允许强参数rails 4

    在下面的情况下 我尝试使用强参数 我想要求email address password并允许remember me fields 但像下面这样使用它只允许最后一行在方法示例中 在下面的情况下 它只需要params permit rememb
  • 在 Rails 3 中渲染 Markdown 文本

    我想将 markdown 转换为 html 在我看来我有markdown some text variable 但我得到了错误undefined method markdown I added require BlueCoth 到envir
  • 如何加载页面特定的rails 4 js文件?

    我正在阅读资产管道的 Rails 指南文档 它指出 CoffeeScript 页面特定生成的文件 如果清单上有 require tree 指令 则默认情况下可供用户使用 这对我不起作用我必须包括这个 在特定控制器上 我缺少什么 资产管道会将
  • 如何向 Rails 应用程序添加自定义字体?

    我想在 RoR 应用程序中使用几种字体 但它们的格式主要是 ttf 和 otf 等 我该如何将这些文件嵌入到我的 Rails 应用程序中 也就是说 一旦我将它们放入我的资产文件夹中 将它们嵌入我的 CSS 和 或 LESS 文件中的语法到底
  • Rails Windows Vagrant 响应时间非常慢

    我在跑 Vagrant 1 7 1 Rails 4 1 4 Thin 1 6 1 Windows 7 每个静态文件的发送时间都超过一秒 在我的 PC 上加载一个页面可能需要大约 20 秒 而在同事的 Linux 机器上则只需瞬间 有一些帖子
  • 使用rSpec 测试delayed_job 链的最佳方法是什么?

    目前 当我的代码中有一个延迟方法时 如下所示 CommentMailer delay deliver comments comment true 我在规范中写了这样的内容 dj mock DelayProxy CommentMailer s
  • 仅针对 Rake 任务运行初始化程序

    我希望在执行 Rake 任务时运行某个初始化程序 但在运行 Rails 服务器时不运行 区分 Rake 调用和服务器调用的最佳方法是什么 Rake 允许您指定任务的依赖关系 最好的建议操作是将特定于 rake 的初始化放入其自己的任务中 而
  • 将查询字符串参数作为表单发布的一部分发送

    有没有办法捕获查询字符串并将其作为表单帖子的一部分发送 我正在使用 Rails 2 3 5 我的用户所在的页面有多个查询字符串参数 在此页面上 他们将提交一份表格 在接收帖子的操作中 我想知道这些查询字符串参数是什么 显然 它们不是作为邮件

随机推荐