Class: Graticule::Geocoder::Multimap
- Defined in:
- lib/graticule/geocoder/multimap.rb
Overview
Multimap geocoding API
Defined Under Namespace
Constant Summary collapse
- PRECISION =
This precision information is not complete. More details should be implemented from: www.multimap.com/share/documentation/clientzone/gqcodes.htm
{ 6 => Precision::Country, 5 => Precision::Region, 4 => Precision::PostalCode, 3 => Precision::Locality, 2 => Precision::Street, 1 => Precision::Address }
Constants inherited from Base
Instance Method Summary collapse
- #check_error(result) ⇒ Object
-
#initialize(api_key) ⇒ Multimap
constructor
Web services initializer.
-
#locate(address) ⇒ Object
Returns a location for an address in the form of a String, Hash or Location.
- #parse_response(result) ⇒ Object
- #prepare_response(xml) ⇒ Object
Constructor Details
#initialize(api_key) ⇒ Multimap
Web services initializer.
The api_key
is the Open API key that uniquely identifies your application.
29 30 31 32 |
# File 'lib/graticule/geocoder/multimap.rb', line 29 def initialize(api_key) @api_key = api_key @url = URI.parse "http://clients.multimap.com/API/geocode/1.2/#{@api_key}" end |
Instance Method Details
#check_error(result) ⇒ Object
93 94 95 |
# File 'lib/graticule/geocoder/multimap.rb', line 93 def check_error(result) raise Error, result.error unless result.error.blank? end |
#locate(address) ⇒ Object
Returns a location for an address in the form of a String, Hash or Location.
36 37 38 39 40 41 42 43 44 45 46 47 48 |
# File 'lib/graticule/geocoder/multimap.rb', line 36 def locate(address) location = address.is_a?(String) ? address : location_from_params(address) case location when String get :qs => location when Location get "street" => location.street, "region" => location.region, "city" => location.locality, "postalCode" => location.postal_code, "countryCode" => location.country end end |
#parse_response(result) ⇒ Object
79 80 81 82 83 84 85 86 87 88 89 90 91 |
# File 'lib/graticule/geocoder/multimap.rb', line 79 def parse_response(result) addr = result.addresses.first Location.new( :latitude => addr.latitude, :longitude => addr.longitude, :street => addr.street, :locality => addr.locality, :region => addr.region, :postal_code => addr.postal_code, :country => addr.country, :precision => addr.precision ) end |
#prepare_response(xml) ⇒ Object
75 76 77 |
# File 'lib/graticule/geocoder/multimap.rb', line 75 def prepare_response(xml) Result.parse(xml, :single => true) end |