Class: Geokit::Geocoders::Geocoder

Inherits:
Object
  • Object
show all
Defined in:
lib/geokit/geocoders.rb

Overview

The Geocoder base class which defines the interface to be used by all other geocoders.

Class Method Summary collapse

Class Method Details

.call_geocoder_service(url) ⇒ Object

Call the geocoder service using the timeout if configured.



146
147
148
149
150
151
# File 'lib/geokit/geocoders.rb', line 146

def self.call_geocoder_service(url)
  Timeout::timeout(Geokit::Geocoders::request_timeout) { return self.do_get(url) } if Geokit::Geocoders::request_timeout        
  return self.do_get(url)
rescue TimeoutError
  return nil  
end

.do_reverse_geocode(latlng) ⇒ Object

Not all geocoders can do reverse geocoding. So, unless the subclass explicitly overrides this method, a call to reverse_geocode will return an empty GeoLoc. If you happen to be using MultiGeocoder, this will cause it to failover to the next geocoder, which will hopefully be one which supports reverse geocoding.



156
157
158
# File 'lib/geokit/geocoders.rb', line 156

def self.do_reverse_geocode(latlng)
  return GeoLoc.new
end

.geocode(address, options = {}) ⇒ Object

Main method which calls the do_geocode template method which subclasses are responsible for implementing. Returns a populated GeoLoc or an empty one with a failed success code.



133
134
135
136
# File 'lib/geokit/geocoders.rb', line 133

def self.geocode(address, options = {}) 
  res = do_geocode(address, options)
  return res.nil? ? GeoLoc.new : res
end

.reverse_geocode(latlng) ⇒ Object

Main method which calls the do_reverse_geocode template method which subclasses are responsible for implementing. Returns a populated GeoLoc or an empty one with a failed success code.



140
141
142
143
# File 'lib/geokit/geocoders.rb', line 140

def self.reverse_geocode(latlng)
  res = do_reverse_geocode(latlng)
  return res.success? ? res : GeoLoc.new        
end