From b00a01c58a32cdfd32ff53fb663f0f5d43117344 Mon Sep 17 00:00:00 2001 From: Nick Elser <nick.elser@gmail.com> Date: Tue, 8 Jul 2014 12:59:18 -0700 Subject: [PATCH] fix bing reverse geocode lookups --- lib/geocoder/lookups/bing.rb | 15 ++++++++++----- test/unit/lookups/bing_test.rb | 2 +- 2 files changed, 11 insertions(+), 6 deletions(-) diff --git a/lib/geocoder/lookups/bing.rb b/lib/geocoder/lookups/bing.rb index 5509ac12..0149d144 100644 --- a/lib/geocoder/lookups/bing.rb +++ b/lib/geocoder/lookups/bing.rb @@ -24,12 +24,17 @@ module Geocoder::Lookup def base_url(query) url = "#{protocol}://dev.virtualearth.net/REST/v1/Locations" - if !query.reverse_geocode? and r = query.options[:region] - url << "/#{r}" + + if !query.reverse_geocode? + if r = query.options[:region] + url << "/#{r}" + end + # use the more forgiving 'unstructured' query format to allow special + # chars, newlines, brackets, typos. + url + "?q=" + URI.escape(query.sanitized_text.strip) + "&" + else + url + "/#{URI.escape(query.sanitized_text.strip)}?" end - # use the more forgiving 'unstructured' query format to allow special - # chars, newlines, brackets, typos. - url + "?q=" + URI.escape(query.sanitized_text.strip) + "&" end def results(query) diff --git a/test/unit/lookups/bing_test.rb b/test/unit/lookups/bing_test.rb index d7b31a1e..9a63f90e 100644 --- a/test/unit/lookups/bing_test.rb +++ b/test/unit/lookups/bing_test.rb @@ -12,7 +12,7 @@ class BingTest < GeocoderTestCase def test_query_for_reverse_geocode lookup = Geocoder::Lookup::Bing.new url = lookup.query_url(Geocoder::Query.new([45.423733, -75.676333])) - assert_match(/Locations\?q=45.423733/, url) + assert_match(/Locations\/45.423733/, url) end def test_result_components -- GitLab