- # create result array
- @results = Array.new
-
- # create parameter hash for "more results" link
- @more_params = params.reverse_merge({ :exclude => [] })
-
- # extract the results from the response
- results = response.elements["searchresults"]
-
- # parse the response
- results.elements.each("place") do |place|
- lat = place.attributes["lat"].to_s
- lon = place.attributes["lon"].to_s
- klass = place.attributes["class"].to_s
- type = place.attributes["type"].to_s
- name = place.attributes["display_name"].to_s
- min_lat,max_lat,min_lon,max_lon = place.attributes["boundingbox"].to_s.split(",")
- prefix_name = t "geocoder.search_osm_nominatim.prefix.#{klass}.#{type}", :default => type.gsub("_", " ").capitalize
- prefix = t "geocoder.search_osm_nominatim.prefix_format", :name => prefix_name
- object_type = place.attributes["osm_type"].to_s
- object_id = place.attributes["osm_id"].to_s
-
- @results.push({:lat => lat, :lon => lon,
- :min_lat => min_lat, :max_lat => max_lat,
- :min_lon => min_lon, :max_lon => max_lon,
- :prefix => prefix, :name => name,
- :type => object_type, :id => object_id})
- @more_params[:exclude].push(place.attributes["place_id"].to_s)
- end
-
- render :action => "results"
-# rescue Exception => ex
-# @error = "Error contacting nominatim.openstreetmap.org: #{ex.to_s}"
-# render :action => "error"