]> git.openstreetmap.org Git - rails.git/blobdiff - lib/nominatim.rb
Merge remote-tracking branch 'upstream/pull/5017'
[rails.git] / lib / nominatim.rb
index fd0855fc9e02bf81e091ff443eb2713cce53e00c..5e4a18b519733d39e5fc7b770e0d3cfb61729c8d 100644 (file)
@@ -8,18 +8,20 @@ module Nominatim
     language ||= http_accept_language.user_preferred_languages.join(",")
 
     Rails.cache.fetch "/nominatim/location/#{lat}/#{lon}/#{zoom}/#{language}" do
     language ||= http_accept_language.user_preferred_languages.join(",")
 
     Rails.cache.fetch "/nominatim/location/#{lat}/#{lon}/#{zoom}/#{language}" do
-      url = "https://nominatim.openstreetmap.org/reverse?lat=#{lat}&lon=#{lon}&zoom=#{zoom}&accept-language=#{language}"
+      url = "#{Settings.nominatim_url}reverse?lat=#{lat}&lon=#{lon}&zoom=#{zoom}&accept-language=#{language}"
 
       begin
 
       begin
-        response = Timeout.timeout(4) do
-          REXML::Document.new(Net::HTTP.get(URI.parse(url)))
+        response = OSM.http_client.get(URI.parse(url)) do |request|
+          request.options.timeout = 4
         end
         end
+
+        results = REXML::Document.new(response.body) if response.success?
       rescue StandardError
       rescue StandardError
-        response = nil
+        results = nil
       end
 
       end
 
-      if response && result = response.get_text("reversegeocode/result")
-        result.to_s
+      if results && result = results.get_text("reversegeocode/result")
+        result.value
       else
         "#{number_with_precision(lat, :precision => 3)}, #{number_with_precision(lon, :precision => 3)}"
       end
       else
         "#{number_with_precision(lat, :precision => 3)}, #{number_with_precision(lon, :precision => 3)}"
       end