问题描述
我在我的 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 (将#修改为@)