class Google::Maps::Location

Attributes

address[R]
components[R]
latitude[R]
longitude[R]
to_s[R]

Public Class Methods

find(address, language = :en) click to toggle source
# File lib/google_maps/location.rb, line 22
def self.find(address, language = :en)
  args = { language: language, address: address }

  API.query(:geocode_service, args).results.map do |result|
    Location.new(
      result.formatted_address,
      result.geometry.location.lat,
      result.geometry.location.lng,
      format_components(result.address_components)
    )
  end
end
format_components(address_components) click to toggle source
# File lib/google_maps/location.rb, line 35
def self.format_components(address_components)
  address_components.each_with_object({}) do |v, acc|
    types = v['types']
    types.each do |t|
      acc[t] ||= []
      acc[t] << v['long_name']
    end
  end
end
new(address, latitude, longitude, components = {}) click to toggle source
# File lib/google_maps/location.rb, line 11
def initialize(address, latitude, longitude, components = {})
  @address = address
  @latitude = latitude
  @longitude = longitude
  @components = components
end

Public Instance Methods

lat_lng() click to toggle source
# File lib/google_maps/location.rb, line 18
def lat_lng
  [latitude, longitude]
end