Sha256: 1e5703d9fa51992c0efcdb9909dd537d6d2c21ee82948cff611d8a238a2dc433

Contents?: true

Size: 1.33 KB

Versions: 2

Compression:

Stored size: 1.33 KB

Contents

require 'geocoder2/lookups/base'
require 'geocoder2/results/ovi'

module Geocoder2::Lookup
  class Ovi < Base

    def name
      "Ovi"
    end

    def required_api_key_parts
      []
    end

    def query_url(query)
      "#{protocol}://lbs.ovi.com/search/6.2/#{if query.reverse_geocode? then 'reverse' end}geocode.json?" + url_query_string(query)
    end

    private # ---------------------------------------------------------------

    def results(query)
      return [] unless doc = fetch_data(query)
      return [] unless doc['Response'] && doc['Response']['View']
      if r=doc['Response']['View']
        return [] if r.nil? || !r.is_a?(Array) || r.empty?
        return r.first['Result']
      end
      []
    end

    def query_url_params(query)
      options = {
        :gen=>1,
        :app_id=>api_key,
        :app_code=>api_code
      }

      if query.reverse_geocode?
        super.merge(options).merge(
          :prox=>query.sanitized_text,
          :mode=>:retrieveAddresses
        )
      else
        super.merge(options).merge(
          :searchtext=>query.sanitized_text
        )
      end
    end

    def api_key
      if a=configuration.api_key
        return a.first if a.is_a?(Array)
      end
    end

    def api_code
      if a=configuration.api_key
        return a.last if a.is_a?(Array)
      end
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
geocoder2-0.1.1 lib/geocoder2/lookups/ovi.rb
geocoder2-0.1.0 lib/geocoder2/lookups/ovi.rb