[英]Ruby Geocoder [Rails] - How to Traverse this Result
我剛剛安裝了Ruby Geocoder ,我正試圖遍歷Geocoder::Result
,但是我一直在努力。 我在rails控制台中,並使用了以下內容:
s = Geocoder.search("90210")
返回以下內容:
[#<Geocoder::Result::Google:0x007ff295579ad8 @data={"address_components"=>[{"long_name"=>"90210", "short_name"=>"90210", "types"=>["postal_code"]}, {"long_name"=>"Beverly Hills", "short_name"=>"Beverly Hills", "types"=>["locality", "political"]}, {"long_name"=>"Los Angeles", "short_name"=>"Los Angeles", "types"=>["administrative_area_level_2", "political"]}, {"long_name"=>"California", "short_name"=>"CA", "types"=>["administrative_area_level_1", "political"]}, {"long_name"=>"United States", "short_name"=>"US", "types"=>["country", "political"]}], "formatted_address"=>"Beverly Hills, CA 90210, USA", "geometry"=>{"bounds"=>{"northeast"=>{"lat"=>34.1354771, "lng"=>-118.3867129}, "southwest"=>{"lat"=>34.065094, "lng"=>-118.4423781}}, "location"=>{"lat"=>34.1030032, "lng"=>-118.4104684}, "location_type"=>"APPROXIMATE", "viewport"=>{"northeast"=>{"lat"=>34.1354771, "lng"=>-118.3867129}, "southwest"=>{"lat"=>34.065094, "lng"=>-118.4423781}}}, "types"=>["postal_code"]}, @cache_hit=nil>]
如何訪問結果的特定部分? 我嘗試過以下方法:
s.result.city
, result.city
, s.data
?? 但這些都不起作用。 任何想法都會很棒。
謝謝!
我想到了。 文檔說“Geocoder.search返回一個Geocoder :: Result對象的數組”
因此,我需要這個:
s[0].city
<= Beverly Hills OR s.first.city
(感謝@fotanus)
使用“Geocoder.search”時,您需要解析幾個圖層才能到達城市。 以下將返回“比佛利山庄”。
s.first.data["address_components"][1]["short_name"]
如果要使用其他答案中所示的語法,則需要創建一個新的地理編碼器實例,而不是使用Geocoder .search
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.