【问题标题】:How to do a city/state/country code lookup based on zip/country input by the user?如何根据用户输入的邮政编码/国家/地区进行城市/州/国家/地区代码查找?
【发布时间】:2012-05-10 08:52:24
【问题描述】:

是否有办法根据用户输入的邮政编码/国家/地区进行城市/州/国家/地区代码查找?我的网站将是国际化的,因此要求用户输入他们的国家/地区。

我认为用户输入邮政编码和国家/地区,它们会保存到数据库中,然后 Google 地理编码 API 会将其转换为城市、州和国家,并将输出打印到他们的用户个人资料中。例如:

用户输入:

Zip - 92646

Country - USA

输出:

Huntington Beach, CA, USA

我可以让用户输入他们的城市、州和国家,但将来我想做一些地理编码。因此,现在设置它而不是稍后迁移数据库是有意义的。还是你认为我在这里做错了?我有一个在 Rails 中构建的网站。提前致谢。

** 评论:看起来像RubyCoder Gem 上的演示允许您输入 zip 和国家来打印 City/State/Country/Zip,这正是我所追求的。关于 Geocoder 与 Google goecoder API 的想法?

【问题讨论】:

  • 取决于您对什么感到满意。我直接为 Google Maps API 编写 JS,使用 Ruby Geocoder 可以节省大量输入。 JS 看起来像这样:developers.google.com/maps/documentation/javascript/… ruby​​ 地理编码器支持 Google 作为数据源。
  • 正如@HeitorChang 所说,地理编码器使用google 之类的资源,那么您为什么要直接与API 交互呢?
  • 我对 Rails 很陌生,所以地理编码器对我来说可能会“更容易”。
  • 如果您使用 Google 地理编码器,您必须在地图上显示该位置以遵守使用条款。这可能不是问题(图片很好,您可以向用户展示您找到它们的位置)但我只是想提一下。
  • 感谢@AndrewLeach。如果地图是 T&C 的一部分,我不介意展示地图。就像你说的,图片很好!

标签: ruby-on-rails google-maps-api-3 geocoding


【解决方案1】:

我建议使用地理编码器 gem 并允许用户在一个字段中输入他们的地址。用户更容易以方便的格式只输入一个字段。并将其保留为完整地址。然后将此地址提供给地理编码器(通常地理编码器会自动完成),然后从那里获取坐标、城市、州等。 如果用户输入了错误的地址,他只需澄清它。这只是我的意见,不是规则。

【讨论】:

  • 有趣。我最初认为我应该在数据库中有两个输入(邮编和国家/地区)。我更希望有一个输入以获得更好的用户体验。在查看 Railscast 地理编码器后,我发现 Google API 可以更正拼写,这是我最初对单行输入的担忧。
  • 唯一的问题可能是用户错误地输入了他的地址。例如,他只输入了一个街道名称,而同名街道已经在另一个城市(或另一个国家)。在这种情况下,Geocoder 可能会将他分配到另一个城市。我认为解决方案是在地理编码后显示用户数据并询问:“这是正确的吗?”。这甚至可以通过 Ajax 完成。
  • 我假设我只需要在数据库(地址)中添加一列,而经纬度不需要一列? Geocode 是否能够在我的数据库不先转换为经纬度并粘贴到数据库中的情况下转换地址?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-01-27
  • 2017-07-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多