- rescue StandardError => ex
- @error = "Error contacting nominatim.openstreetmap.org: #{ex}"
- render :action => "error"
- end
-
- def search_geonames
- # get query parameters
- query = params[:query]
-
- # get preferred language
- lang = I18n.locale.to_s.split("-").first
-
- # create result array
- @results = []
-
- # ask geonames.org
- response = fetch_xml("http://api.geonames.org/search?q=#{escape_query(query)}&lang=#{lang}&maxRows=20&username=#{GEONAMES_USERNAME}")
-
- # parse the response
- response.elements.each("geonames/geoname") do |geoname|
- lat = geoname.get_text("lat").to_s
- lon = geoname.get_text("lng").to_s
- name = geoname.get_text("name").to_s
- country = geoname.get_text("countryName").to_s
- @results.push(:lat => lat, :lon => lon,
- :zoom => GEONAMES_ZOOM,
- :name => name,
- :suffix => ", #{country}")
- end
-
- render :action => "results"
- rescue StandardError => ex
- @error = "Error contacting api.geonames.org: #{ex}"
+ rescue StandardError => e
+ host = URI(Settings.nominatim_url).host
+ @error = "Error contacting #{host}: #{e}"