class Geokit::Geocoders::HereGeocoder
Constants
- XML_MAPPINGS
Private Class Methods
api_endpoint()
click to toggle source
# File lib/here_geocoder.rb, line 36 def self.api_endpoint if ENV['RAKE_ENV'] == 'test' "https://geocoder.cit.api.here.com/6.2/geocode.xml" else "https://geocoder.api.here.com/6.2/geocode.xml" end end
do_geocode(address, options = {})
click to toggle source
# File lib/here_geocoder.rb, line 12 def self.do_geocode(address, options = {}) if (app_id.nil? || app_id.empty?) || (app_code.nil? || app_code.empty?) raise(Geokit::Geocoders::GeocodeError, "Here geocoder API requires auth id and code to use their service.") end process :xml, submit_url(address) end
parse_xml(xml)
click to toggle source
# File lib/here_geocoder.rb, line 58 def self.parse_xml(xml) results = xml.elements.to_a("//Result") return GeoLoc.new if results.nil? || results.count == 0 loc = new_loc # only take the first result set_mappings(loc, results.first, XML_MAPPINGS) loc.success = true loc end
submit_url(address)
click to toggle source
# File lib/here_geocoder.rb, line 21 def self.submit_url(address) args = [] args << ["app_id", app_id] args << ["app_code", app_code] args << ["additionaldata", "Country2,1"] args << ["language", "en-US"] args << ["gen", "9"] address_str = address.is_a?(GeoLoc) ? address.to_geocodeable_s : address args << ["searchtext", address_str] [api_endpoint, '?', URI.encode_www_form(args)].join('') end