Class: Graticule::Geocoder::Google::Result
- Inherits:
-
Object
- Object
- Graticule::Geocoder::Google::Result
- Defined in:
- lib/graticule/geocoder/google.rb
Instance Attribute Summary collapse
-
#country ⇒ Object
Returns the value of attribute country.
-
#formatted_address ⇒ Object
Returns the value of attribute formatted_address.
-
#latitude ⇒ Object
Returns the value of attribute latitude.
-
#locality ⇒ Object
Returns the value of attribute locality.
-
#longitude ⇒ Object
Returns the value of attribute longitude.
-
#postal_code ⇒ Object
Returns the value of attribute postal_code.
-
#precision ⇒ Object
Returns the value of attribute precision.
-
#region ⇒ Object
Returns the value of attribute region.
-
#route ⇒ Object
Returns the value of attribute route.
-
#street_number ⇒ Object
Returns the value of attribute street_number.
Instance Method Summary collapse
- #determine_precision(types) ⇒ Object
-
#initialize(attribs) ⇒ Result
constructor
A new instance of Result.
- #parse_address_components(components) ⇒ Object
- #street ⇒ Object
Constructor Details
#initialize(attribs) ⇒ Result
Returns a new instance of Result.
31 32 33 34 35 36 37 |
# File 'lib/graticule/geocoder/google.rb', line 31 def initialize(attribs) @latitude = attribs["geometry"]["location"]["lat"] @longitude = attribs["geometry"]["location"]["lng"] @formatted_address = attribs["formatted_address"] @precision = determine_precision(attribs["types"]) parse_address_components(attribs["address_components"]) end |
Instance Attribute Details
#country ⇒ Object
Returns the value of attribute country.
30 31 32 |
# File 'lib/graticule/geocoder/google.rb', line 30 def country @country end |
#formatted_address ⇒ Object
Returns the value of attribute formatted_address.
30 31 32 |
# File 'lib/graticule/geocoder/google.rb', line 30 def formatted_address @formatted_address end |
#latitude ⇒ Object
Returns the value of attribute latitude.
30 31 32 |
# File 'lib/graticule/geocoder/google.rb', line 30 def latitude @latitude end |
#locality ⇒ Object
Returns the value of attribute locality.
30 31 32 |
# File 'lib/graticule/geocoder/google.rb', line 30 def locality @locality end |
#longitude ⇒ Object
Returns the value of attribute longitude.
30 31 32 |
# File 'lib/graticule/geocoder/google.rb', line 30 def longitude @longitude end |
#postal_code ⇒ Object
Returns the value of attribute postal_code.
30 31 32 |
# File 'lib/graticule/geocoder/google.rb', line 30 def postal_code @postal_code end |
#precision ⇒ Object
Returns the value of attribute precision.
30 31 32 |
# File 'lib/graticule/geocoder/google.rb', line 30 def precision @precision end |
#region ⇒ Object
Returns the value of attribute region.
30 31 32 |
# File 'lib/graticule/geocoder/google.rb', line 30 def region @region end |
#route ⇒ Object
Returns the value of attribute route.
30 31 32 |
# File 'lib/graticule/geocoder/google.rb', line 30 def route @route end |
#street_number ⇒ Object
Returns the value of attribute street_number.
30 31 32 |
# File 'lib/graticule/geocoder/google.rb', line 30 def street_number @street_number end |
Instance Method Details
#determine_precision(types) ⇒ Object
64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 |
# File 'lib/graticule/geocoder/google.rb', line 64 def determine_precision(types) precision = Precision::Unknown types.each do |type| precision = case type when "premise", "subpremise" Precision::Premise when "street_address" Precision::Address when "route", "intersection" Precision::Street when "postal_code" Precision::PostalCode when "locality","sublocality","neighborhood" Precision::Locality when "administrative_area_level_1", "administrative_area_level_2","administrative_area_level_3" Precision::Region when "country" Precision::Country else precision end end return precision end |
#parse_address_components(components) ⇒ Object
39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 |
# File 'lib/graticule/geocoder/google.rb', line 39 def parse_address_components(components) components.each do |component| component["types"].each do |type| case type when "street_number" @street_number = component["short_name"] when "route" @route = component["short_name"] when "locality", "sublocality" @locality = component["long_name"] when "administrative_area_level_1" @region = component["short_name"] when "country" @country = component["short_name"] when "postal_code" @postal_code = component["long_name"] end end end end |
#street ⇒ Object
60 61 62 |
# File 'lib/graticule/geocoder/google.rb', line 60 def street "#{@street_number.to_s}#{" " unless @street_number.blank? || @route.blank?}#{@route.to_s}" end |