class Geokit::Geocoders::GeocodioGeocoder

Private Class Methods

create_new_loc(json) click to toggle source
# File lib/geokit/geocoders/geocodio.rb, line 35
def self.create_new_loc(json)
  loc = new_loc
  set_address_components(json, loc)
  set_coordinates(json, loc)
  loc
end
do_geocode(address, _=nil) click to toggle source
# File lib/geokit/geocoders/geocodio.rb, line 8
def self.do_geocode(address, _=nil)
  process :json, submit_url(address)
end
parse_json(json) click to toggle source
# File lib/geokit/geocoders/geocodio.rb, line 21
def self.parse_json(json)
  loc = nil

  json['results'].each do |address|
    if loc.nil?
      loc = create_new_loc(address)
    else
      loc.all.push(create_new_loc(address))
    end
  end
  loc.success = true
  loc
end
set_address_components(json, loc) click to toggle source
# File lib/geokit/geocoders/geocodio.rb, line 42
def self.set_address_components(json, loc)
  loc.street_address  = json['address_components']['street']
  loc.street_number   = json['address_components']['number']
  loc.sub_premise     = json['address_components']['suffix']
  loc.street_name     = json['address_components']['street']
  loc.city            = json['address_components']['city']
  loc.state           = json['address_components']['state']
  loc.zip             = json['address_components']['zip']
  loc.full_address    = json['formatted_address']
end
set_coordinates(json, loc) click to toggle source
# File lib/geokit/geocoders/geocodio.rb, line 53
def self.set_coordinates(json, loc)
  loc.lat = json['location']['lat']
  loc.lng = json['location']['lng']
end
submit_url(address) click to toggle source
# File lib/geokit/geocoders/geocodio.rb, line 12
def self.submit_url(address)
  params = [
    "q=#{Geokit::Inflector.url_escape(address)}",
    "api_key=#{key}",
  ].join('&')

  ['http://api.geocod.io/v1/geocode', params].join('?')
end