Class: Geocodio::Client
- Inherits:
-
Object
- Object
- Geocodio::Client
- Includes:
- Utils
- Defined in:
- lib/geocodio/client.rb,
lib/geocodio/client/error.rb,
lib/geocodio/client/response.rb
Defined Under Namespace
Constant Summary collapse
- CONTENT_TYPE =
'application/json'
- METHODS =
{ :get => Net::HTTP::Get, :post => Net::HTTP::Post, :put => Net::HTTP::Put, :delete => Net::HTTP::Delete }
- HOST =
'api.geocod.io'
- BASE_PATH =
'/v1'
- PORT =
80
Instance Method Summary collapse
-
#geocode(addresses, options = {}) ⇒ Geocodio::Address, Array<Geocodio::AddressSet>
Geocodes one or more addresses.
-
#initialize(api_key = ENV['GEOCODIO_API_KEY']) ⇒ Client
constructor
A new instance of Client.
-
#parse(address, options = {}) ⇒ Geocodio::Address
Sends a GET request to api.geocod.io/v1/parse to correctly dissect an address into individual parts.
-
#reverse_geocode(coordinates, options = {}) ⇒ Geocodio::Address, Array<Geocodio::AddressSet>
(also: #reverse)
Reverse geocodes one or more pairs of coordinates.
Methods included from Utils
#normalize_coordinates, #normalize_params_and_options, #parse_nested_results, #parse_results
Constructor Details
#initialize(api_key = ENV['GEOCODIO_API_KEY']) ⇒ Client
Returns a new instance of Client.
24 25 26 |
# File 'lib/geocodio/client.rb', line 24 def initialize(api_key = ENV['GEOCODIO_API_KEY']) @api_key = api_key end |
Instance Method Details
#geocode(addresses, options = {}) ⇒ Geocodio::Address, Array<Geocodio::AddressSet>
Geocodes one or more addresses. If one address is specified, a GET request is submitted to api.geocod.io/v1/geocode. Multiple addresses will instead submit a POST request.
36 37 38 39 40 41 42 43 44 |
# File 'lib/geocodio/client.rb', line 36 def geocode(addresses, = {}) if addresses.size < 1 raise ArgumentError, 'You must provide at least one address to geocode.' elsif addresses.size == 1 geocode_single(addresses.first, ) else geocode_batch(addresses, ) end end |
#parse(address, options = {}) ⇒ Geocodio::Address
Sends a GET request to api.geocod.io/v1/parse to correctly dissect an address into individual parts. As this endpoint does not do any geocoding, parts missing from the passed address will be missing from the result.
75 76 77 78 79 80 |
# File 'lib/geocodio/client.rb', line 75 def parse(address, = {}) params, = () params[:q] = address Address.new get('/parse', params, ).body end |
#reverse_geocode(coordinates, options = {}) ⇒ Geocodio::Address, Array<Geocodio::AddressSet> Also known as: reverse
Reverse geocodes one or more pairs of coordinates. Coordinate pairs may be specified either as a comma-separated “latitude,longitude” string, or as a Hash with :lat/:latitude and :lng/:longitude keys. If one pair of coordinates is specified, a GET request is submitted to api.geocod.io/v1/reverse. Multiple pairs of coordinates will instead submit a POST request.
57 58 59 60 61 62 63 64 65 |
# File 'lib/geocodio/client.rb', line 57 def reverse_geocode(coordinates, = {}) if coordinates.size < 1 raise ArgumentError, 'You must provide coordinates to reverse geocode.' elsif coordinates.size == 1 reverse_geocode_single(coordinates.first, ) else reverse_geocode_batch(coordinates, ) end end |