Rails Geocoder Gem - 访问 postcode_localities

问题描述

我在我的 rails 应用程序中使用地理编码器 gem,专门使用 Google Geocoding API。对于我的应用程序的一个功能,邮政编码是输入(而不是完整地址),谷歌返回值正常。但是,当邮政编码覆盖多个地区时,Google 会返回一个名为 postcode_localities 的可选字段,但由于某种原因我无法访问它。

这是谷歌通过 Geocoder Gem 处理的典型返回:

#<Geocoder::Result::Google:0x000056254f7e3e50
 @cache_hit=nil,@data=
  {"address_components"=>
    [{"long_name"=>"G0R 4A0","short_name"=>"G0R 4A0","types"=>["postal_code"]},{"long_name"=>"Buckland","short_name"=>"Buckland","types"=>["neighborhood","political"]},{"long_name"=>"Bellechasse","short_name"=>"Bellechasse","types"=>["administrative_area_level_3",{"long_name"=>"Chaudière-Appalaches","short_name"=>"Chaudière-Appalaches","types"=> 

["administrative_area_level_2","政治"]},{"long_name"=>"Québec","short_name"=>"QC","types"=>["administrative_area_level_1",{"long_name"=>"Canada","short_name"=>"CA","types"=>["country","political"]}],"formatted_address"=>"Buckland,QC G0R 4A0,Canada",“几何”=> {"bounds"=>{"northeast"=>{"lat"=>46.7424894,"lng"=>-70.3290231},"southwest"=>{"lat"=>46.5758698,"lng"=>-70.54953569999999}},“位置”=>{“纬度”=>46.6703543,“lng”=>-70.42580389999999}, "location_type"=>"近似值","viewport"=>{"northeast"=>{"lat"=>46.7424894,"lng"=>-70.54953569999999}}},"place_id"=>"ChIJh6OP8mwXuUwRpmkhxozLv28","postcode_localities"=>["Armagh","Buckland","Saint-Philémon"],"类型"=>["postal_code"]}>

如果在控制台中输入 result.types,我会按预期得到 ["postal_code"]。

但是,如果我尝试 result.postcode_localities,我会得到一个 NoMethodError。

我怀疑当我输入 result.types 时,会调用一个地理编码器方法,但它们似乎没有包含访问 postcode_localities 的方法。是否有解决方法方法可以访问来自 google 的原始数据?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...