class Geokit::Geocoders::UsGeocoder

Private Class Methods

do_geocode(address, _=nil) click to toggle source
# File lib/geokit/geocoders/us_geocoder.rb, line 11
def self.do_geocode(address, _=nil)
  process :csv, submit_url(address)
end
parse_csv(array) click to toggle source
# File lib/geokit/geocoders/us_geocoder.rb, line 22
def self.parse_csv(array)
  loc = GeoLoc.new
  if array.length == 5
    loc.lat, loc.lng, loc.city, loc.state, loc.zip = array
    loc.country_code = 'US'
    loc.success = true
  elsif array.length == 6
    loc.lat, loc.lng, loc.street_address, loc.city, loc.state, loc.zip = array
    loc.country_code = 'US'
    loc.success = true
  end
  loc
end
submit_url(address) click to toggle source
# File lib/geokit/geocoders/us_geocoder.rb, line 15
def self.submit_url(address)
  address_str = address.is_a?(GeoLoc) ? address.to_geocodeable_s : address
  query = (address_str =~ /^\d{5}(?:-\d{4})?$/ ? 'zip' : 'address') + "=#{Geokit::Inflector.url_escape(address_str)}"
  base = key ? "http://#{key}@geocoder.us/member" : 'http://geocoder.us'
  "#{base}/service/csv/geocode?#{query}"
end