Array Confusion

I have the following instruction that returns an array that I’m quite
confused about. I can’t even read it. Can someone shed some light as
to how to reach into this array of hashes (that’s what I can see) to get
the location lat and lon?

res = Geocoder.search(addy1)

This is the res:

[#<Geocoder::Result::Google:0x007fb46c345e18
@data={“address_components”=>[{“long_name”=>“1600”,
“short_name”=>“1600”, “types”=>[“street_number”]},
{“long_name”=>“Amphitheatre Parkway”, “short_name”=>“Amphitheatre Pkwy”,
“types”=>[“route”]}, {“long_name”=>“Mountain View”,
“short_name”=>“Mountain View”, “types”=>[“locality”, “political”]},
{“long_name”=>“California”, “short_name”=>“CA”,
“types”=>[“administrative_area_level_1”, “political”]},
{“long_name”=>“United States”, “short_name”=>“US”, “types”=>[“country”,
“political”]}, {“long_name”=>“94043”, “short_name”=>“94043”,
“types”=>[“postal_code”]}], “formatted_address”=>“1600 Amphitheatre
Parkway, Mountain View, CA 94043, USA”,
“geometry”=>{“location”=>{“lat”=>37.4219985, “lng”=>-122.0839544},
“location_type”=>“ROOFTOP”,
“viewport”=>{“northeast”=>{“lat”=>37.4233474802915,
“lng”=>-122.0826054197085}, “southwest”=>{“lat”=>37.4206495197085,
“lng”=>-122.0853033802915}}}, “types”=>[“street_address”]},
@cache_hit=nil>]

Outside of the conversion of string to integer errors (?), I can’t
traverse this array because it holds a comment in the first line there,
before an instance variable is set to the data. Quite confused. Any
insight appreciated.

Cheers

Your’e looking at the result in correctly,-- that is not a comment in
the array! Its the “stringified” output of the array that contains
Geocoder::Result objects.

res = Geocoder.search(addy1).first

res.data # => gives you entire data … seen as @data and then you can
traverse as a hash

There are other helper routines too (a few mentioned below).
res.address
res.city
res.state
res.formatted_address
res.coordinates

etc. See these two files to learn all the methods of Geocoder::Result
https://github.com/alexreisner/geocoder/blob/master/lib/geocoder/results/google.rb
https://github.com/alexreisner/geocoder/blob/master/lib/geocoder/results/base.rb

Cheers!
@gautamrege

All wiyht. Rho sritched mg kegtops awound?

I see. Now it is clear. I was under the impression that the inspect
method was just a representation of the returned array. Good to know.
Thanks for the notes.

Cheers

This forum is not affiliated to the Ruby language, Ruby on Rails framework, nor any Ruby applications discussed here.

| Privacy Policy | Terms of Service | Remote Ruby Jobs