From 438f87e9ef85d3c04d5e1cfd6fa0d5059bd71cdc Mon Sep 17 00:00:00 2001 From: Shinya Kitamura <shinya.kitamura@sugar.sg> Date: Tue, 24 May 2016 10:42:03 +0800 Subject: [PATCH] Add Pelias (Mapzen) reverse geocoding --- lib/geocoder/lookups/pelias.rb | 14 +++++++++++--- test/unit/lookups/pelias_test.rb | 6 ++++++ 2 files changed, 17 insertions(+), 3 deletions(-) diff --git a/lib/geocoder/lookups/pelias.rb b/lib/geocoder/lookups/pelias.rb index 31c89696..22546255 100644 --- a/lib/geocoder/lookups/pelias.rb +++ b/lib/geocoder/lookups/pelias.rb @@ -23,11 +23,19 @@ module Geocoder::Lookup private def query_url_params(query) - { + params = { api_key: configuration.api_key, - text: query.text, size: 1 - }.merge(super(query)) + }.merge(super) + + if query.reverse_geocode? + lat,lon = query.coordinates + params[:'point.lat'] = lat + params[:'point.lon'] = lon + else + params[:text] = query.text + end + params end def results(query) diff --git a/test/unit/lookups/pelias_test.rb b/test/unit/lookups/pelias_test.rb index ba209d6e..24826462 100644 --- a/test/unit/lookups/pelias_test.rb +++ b/test/unit/lookups/pelias_test.rb @@ -21,4 +21,10 @@ class PeliasTest < GeocoderTestCase query = Geocoder::Query.new('Madison Square Garden, New York, NY') assert_match 'size=1', query.url end + + def test_query_for_reverse_geocode + lookup = Geocoder::Lookup::Mapzen.new + url = lookup.query_url(Geocoder::Query.new([45.423733, -75.676333])) + assert_match(/point.lat=45.423733&point.lon=-75.676333&size=1/, url) + end end -- GitLab