ruby-on-rails - 解析谷歌地理编码

标签 ruby-on-rails api geocoding

我在我的应用程序中使用谷歌地理编码 API,但我发现很难可靠地解析返回的地址信息。我希望有人有一个图书馆或解析信息的方法,以防止我不得不自己写这个并涵盖所有情况。

我使用 json api,可以轻松提取地址行和坐标 并将它们存储在数据库中,但问题是以可靠的方式提取其他地址信息,以便我可以存储它。

我查看了 Google 用于地理编码数据的 XAL 结构化地址规范,但我的问题是它可以满足每个国家/地区的每种地址类型,这使得解析结果变得困难。

像邮政编码这样简单的东西可以嵌套在父标签的任意组合中。即使在一个国家/地区,树的显示方式也会有所不同,这使得解析起来比预期更困难。

具有讽刺意味的是,我的最终目标是将其存储在我的数据库中的树中(想想railsacts_as_tree或类似的树),以便用户以后可以轻松找到这些项目。例如,点击国家、州、地区、城镇、郊区等

我在 Rails 工作

最佳答案

有一个 gem 和插件可以为您封装所有这些。它的名字叫GeoKit .

可以让它使用 Google 或少数其他地理编码服务提供商。如果你的模型有适当的字段,它还可以进行距离计算(真正巧妙的是数学是在 SQL 中完成的)。

我已经在我的一个生产应用程序中使用它很长时间来计算邮政编码之间的距离。正如我提到的,我已经在生产中使用它有一段时间了,所以我对代码的健全性没有任何担忧。

关于ruby-on-rails - 解析谷歌地理编码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1619988/

相关文章:

javascript - Rails 应用程序中的 jQuery Tablesorter 文件大小

javascript - 用户注册或登录时是否应该创建Token?

javascript - 在 Cypress 中多次拦截同一个 API 调用

ruby-on-rails - 另一个模型的属性上的 Rails 自定义验证错误消息

ruby-on-rails - 向基本搜索添加第二个属性 (Rails 3)

ruby-on-rails - capybara have_field找不到have_selector找到的字段

python - Python : Get songs Lyrics from genius - Error

java - 我可以在我的 ActivityMaps.java 文件中实现反向地理编码功能吗?

google-maps - 两条道路交叉点的地理编码

c# - 从字符串/Json url 获取数据