Sha256: d9d5181e631ac71f87280608eda74b0a4240eed6cfe03d02b596d8a6d4fa5f4c

Contents?: true

Size: 875 Bytes

Versions: 5

Compression:

Stored size: 875 Bytes

Contents

module Barometer
  #
  # Web Service: Geocode
  #
  # uses Google Maps Geocoding service
  #
  class WebService::Geocode < WebService
    
    def self.fetch(query)
      raise ArgumentError unless _is_a_query?(query)
      puts "geocoding: #{query.q}" if Barometer::debug?
      return nil unless _has_geocode_key?
      location = self.get(
        "http://maps.google.com/maps/geo",
        :query => {
          :gl => query.country_code, :key => Barometer.google_geocode_key,
          :output => "json", :q => query.q, :sensor => "false"
        },
        :format => :json, :timeout => Barometer.timeout
      )
      location = location['kml']['Response'] if (location && location['kml'])
      location ? (geo = Data::Geo.new(location)) : nil
    end

    private
    
    def self._has_geocode_key?
      !Barometer.google_geocode_key.nil?
    end
    
  end
end


Version data entries

5 entries across 5 versions & 1 rubygems

Version Path
barometer-0.7.1 lib/barometer/web_services/geocode.rb
barometer-0.7.0 lib/barometer/web_services/geocode.rb
barometer-0.6.7 lib/barometer/web_services/geocode.rb
barometer-0.6.6 lib/barometer/web_services/geocode.rb
barometer-0.6.4 lib/barometer/web_services/geocode.rb