如何使用Rails 3提取Google地方信息?

rug*_*ert 1 google-maps ruby-on-rails ruby-on-rails-3

所以我知道google places API使用JSON提供位置信息(名称,位置,网站,类型等),但我想知道如何从JSON中获取数据?

基本上我有一个网站,用户可以使用谷歌地图API设置搜索他们的零售商店,我喜欢将所有信息存储在一个表格中,这样当你转到用户的个人资料页面时,你可以看到他们的谷歌在综合地图上放置信息.

也许这是一个更简单的方法,但我不知道如何.

Lan*_*ard 7

您应该只使用客户端的google places api.谷歌的速率限制设置得相当低,而且它基于IP地址(至少对于谷歌地图api而言).因此,如果您从网络服务器发出太多请求,那么谷歌突然间会让您失望.解决这个问题的方法是在javascript中执行所有调用,因此它来自用户的IP地址.

当用户在表单中键入其地址时,请使用google places api获取地点ID或lat/lng坐标,然后将其与数据库中的其他所有内容一起保存.然后,当他们查看用户个人资料时,只需使用该数据从google places api获取地点json.

更新

根据google地方文档,它实际上是reference你要存储的" 令牌",而不是id.

由于您希望用户能够搜索其商店,因此您需要进行2次查询:

  1. 首先,你需要有lat/lng坐标才能查询地点api(谷歌放置api文档.你这样做是通过查询谷歌地图的地理编码api,比如用户当前位置,或者他们填写的一些地址响应将返回lat/lng坐标以及其他属性.将它们保存到与用户模型相关的数据库.我已经使用Geocoder完成了这项工作,但由于谷歌的速率限制,你很快就会遇到问题.保留客户端的所有地理编码内容,然后使用ajax或其他方式保存结果.
  2. 然后,在用户搜索零售商店的页面上,您只需使用他们的lat/lng坐标查询places api:google places api search request example.你会得到一份结果清单.对于用户选择的每个位置,您可以保存reference令牌.
  3. 然后,当您想要检索该地点的详细信息时,您可以使用引用令牌向Google发出api'地址详细信息'请求.