Sha256: e79c4ea390311ef5ed6370721681bfcce33be3f6ce1d3fcf0af9c1cc6050631c

Contents?: true

Size: 1.02 KB

Versions: 13

Compression:

Stored size: 1.02 KB

Contents

require 'geocoder/lookups/base'
require "geocoder/results/esri"

module Geocoder::Lookup
  class Esri < Base
    
    def name
      "Esri"
    end

    def query_url(query)
      search_keyword = query.reverse_geocode? ? "reverseGeocode" : "find"

      "#{protocol}://geocode.arcgis.com/arcgis/rest/services/World/GeocodeServer/#{search_keyword}?" +
        url_query_string(query)
    end

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

    def results(query)
      return [] unless doc = fetch_data(query)

      if (!query.reverse_geocode?)
        return [] if doc['locations'].empty?
      end

      if (doc['error'].nil?)
        return [ doc ]
      else
        return []
      end
    end

    def query_url_params(query)
      params = {
        :f => "pjson",
        :outFields => "*"
      }
      if query.reverse_geocode?
        params[:location] = query.coordinates.reverse.join(',')
      else
        params[:text] = query.sanitized_text
      end
      params.merge(super)
    end

  end
end

Version data entries

13 entries across 13 versions & 3 rubygems

Version Path
geocoder-1.2.7 lib/geocoder/lookups/esri.rb
geocoder-kb-1.2.6 lib/geocoder/lookups/esri.rb
geocoder-1.2.6 lib/geocoder/lookups/esri.rb
bw-geocoder-1.2.6 lib/geocoder/lookups/esri.rb
bw-geocoder-1.2.5 lib/geocoder/lookups/esri.rb
geocoder-1.2.5 lib/geocoder/lookups/esri.rb
geocoder-1.2.4 lib/geocoder/lookups/esri.rb
geocoder-1.2.3 lib/geocoder/lookups/esri.rb
geocoder-1.2.2 lib/geocoder/lookups/esri.rb
geocoder-1.2.1 lib/geocoder/lookups/esri.rb
geocoder-1.2.0 lib/geocoder/lookups/esri.rb
geocoder-1.1.9 lib/geocoder/lookups/esri.rb
geocoder-1.1.8 lib/geocoder/lookups/esri.rb