Sha256: c96c491ecde4318e9bd7bcd9f1dde53646335b827947d68a2a26f9c54e972ca9

Contents?: true

Size: 869 Bytes

Versions: 1

Compression:

Stored size: 869 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?

      query_params = {}
      query_params[:region] = query.country_code
      query_params[:sensor] = 'false'

      if query.format == :coordinates
        query_params[:latlng] = query.q
      else
        query_params[:address] = query.q
      end

      location = self.get(
        "http://maps.googleapis.com/maps/api/geocode/json",
        :query => query_params,
        :format => :json,
        :timeout => Barometer.timeout
      )
      location = location['results'].first if (location && location['results'])
      location ? (geo = Data::Geo.new(location)) : nil
    end

  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
barometer-0.8.0 lib/barometer/web_services/geocode.rb