class Geokit::Geocoders::CaGeocoder

Private Class Methods

do_geocode(loc) click to toggle source

Template method which does the geocode lookup.

# File lib/geokit/geocoders/ca_geocoder.rb, line 20
def self.do_geocode(loc)
  process :xml, submit_url(loc), GeoLoc.new
end
parse_xml(xml, loc) click to toggle source
# File lib/geokit/geocoders/ca_geocoder.rb, line 24
def self.parse_xml(xml, loc)
  loc.lat = xml.elements["//latt"].text
  loc.lng = xml.elements["//longt"].text
  loc.city = xml.elements["//city"].text
  loc.street_number = xml.elements["//stnumber"].text
  loc.street_address = xml.elements["//staddress"].text
  loc.state = xml.elements["//prov"].text
  loc.province = xml.elements["//prov"].text
  loc.zip = xml.elements["//postal"].text
  loc.success = true
  loc
end
submit_url(loc) click to toggle source

Formats the request in the format acceptable by the CA geocoder.

# File lib/geokit/geocoders/ca_geocoder.rb, line 38
def self.submit_url(loc)
  args = ["locate=#{Geokit::Inflector.url_escape(loc)}"]
  args << "auth=#{key}" if key
  args << "geoit=xml"
  "http://geocoder.ca/?" + args.join("&")
end