Remove unused namefinder support from the geocoder backend
authorTom Hughes <tom@compton.nu>
Tue, 18 Sep 2012 10:54:11 +0000 (11:54 +0100)
committerTom Hughes <tom@compton.nu>
Tue, 18 Sep 2012 10:54:11 +0000 (11:54 +0100)
app/controllers/geocoder_controller.rb
config/locales/en.yml

index 2b03790aacdbdb87ece90fc88833d22c296b060e..ced95dce630eaac99a99d0b366846a5706fed850 100644 (file)
@@ -132,84 +132,6 @@ class GeocoderController < ApplicationController
     render :action => "error"
   end
 
-  def search_osm_namefinder
-    # get query parameters
-    query = params[:query]
-
-    # create result array
-    @results = Array.new
-
-    # ask OSM namefinder
-    response = fetch_xml("http://gazetteer.openstreetmap.org/namefinder/search.xml?find=#{escape_query(query)}")
-
-    # parse the response
-    response.elements.each("searchresults/named") do |named|
-      lat = named.attributes["lat"].to_s
-      lon = named.attributes["lon"].to_s
-      zoom = named.attributes["zoom"].to_s
-      place = named.elements["place/named"] || named.elements["nearestplaces/named"]
-      type = named.attributes["info"].to_s.capitalize
-      name = named.attributes["name"].to_s
-      description = named.elements["description"].to_s
-
-      if name.empty?
-        prefix = ""
-        name = type
-      else
-        prefix =  t "geocoder.search_osm_namefinder.prefix", :type => type
-      end
-
-      if place
-        distance = format_distance(place.attributes["approxdistance"].to_i)
-        direction = format_direction(place.attributes["direction"].to_i)
-        placename = format_name(place.attributes["name"].to_s)
-        suffix = t "geocoder.search_osm_namefinder.suffix_place", :distance => distance, :direction => direction, :placename => placename
-
-        if place.attributes["rank"].to_i <= 30
-          parent = nil
-          parentrank = 0
-          parentscore = 0
-
-          place.elements.each("nearestplaces/named") do |nearest|
-            nearestrank = nearest.attributes["rank"].to_i
-            nearestscore = nearestrank / nearest.attributes["distance"].to_f
-
-            if nearestrank > 30 and
-               ( nearestscore > parentscore or
-                 ( nearestscore == parentscore and nearestrank > parentrank ) )
-              parent = nearest
-              parentrank = nearestrank
-              parentscore = nearestscore
-            end
-          end
-
-          if parent
-            parentname = format_name(parent.attributes["name"].to_s)
-
-            if  place.attributes["info"].to_s == "suburb"
-              suffix = t "geocoder.search_osm_namefinder.suffix_suburb", :suffix => suffix, :parentname => parentname
-            else
-              parentdistance = format_distance(parent.attributes["approxdistance"].to_i)
-              parentdirection = format_direction(parent.attributes["direction"].to_i)
-              suffix = t "geocoder.search_osm_namefinder.suffix_parent", :suffix => suffix, :parentdistance => parentdistance, :parentdirection => parentdirection, :parentname => parentname
-            end
-          end
-        end
-      else
-        suffix = ""
-      end
-
-      @results.push({:lat => lat, :lon => lon, :zoom => zoom,
-                     :prefix => prefix, :name => name, :suffix => suffix,
-                     :description => description})
-    end
-
-    render :action => "results"
-  rescue Exception => ex
-    @error = "Error contacting gazetteer.openstreetmap.org: #{ex.to_s}"
-    render :action => "error"
-  end
-
   def search_osm_nominatim
     # get query parameters
     query = params[:query]
@@ -299,42 +221,6 @@ class GeocoderController < ApplicationController
     @sources.push({ :name => "geonames" })
   end
 
-  def description_osm_namefinder
-    # get query parameters
-    lat = params[:lat]
-    lon = params[:lon]
-    types = params[:types]
-    max = params[:max]
-
-    # create result array
-    @results = Array.new
-
-    # ask OSM namefinder
-    response = fetch_xml("http://gazetteer.openstreetmap.org/namefinder/search.xml?find=#{types}+near+#{lat},#{lon}&max=#{max}")
-
-    # parse the response
-    response.elements.each("searchresults/named") do |named|
-      lat = named.attributes["lat"].to_s
-      lon = named.attributes["lon"].to_s
-      zoom = named.attributes["zoom"].to_s
-      place = named.elements["place/named"] || named.elements["nearestplaces/named"]
-      type = named.attributes["info"].to_s
-      name = named.attributes["name"].to_s
-      description = named.elements["description"].to_s
-      distance = format_distance(place.attributes["approxdistance"].to_i)
-      direction = format_direction((place.attributes["direction"].to_i - 180) % 360)
-      prefix = t "geocoder.description_osm_namefinder.prefix", :distance => distance, :direction => direction, :type => type
-      @results.push({:lat => lat, :lon => lon, :zoom => zoom,
-                     :prefix => prefix.capitalize, :name => name,
-                     :description => description})
-    end
-
-    render :action => "results"
-  rescue Exception => ex
-    @error = "Error contacting gazetteer.openstreetmap.org: #{ex.to_s}"
-    render :action => "error"
-  end
-
   def description_osm_nominatim
     # get query parameters
     lat = params[:lat]
@@ -344,7 +230,7 @@ class GeocoderController < ApplicationController
     # create result array
     @results = Array.new
 
-    # ask OSM namefinder
+    # ask nominatim
     response = fetch_xml("#{NOMINATIM_URL}reverse?lat=#{lat}&lon=#{lon}&zoom=#{zoom}&accept-language=#{request.user_preferred_languages.join(',')}")
 
     # parse the response
index 3788abe9f52194fd44848b925b8fe076a7606d0c..65cc2bda33dd16e0d68c616d227d860d7de180ed 100644 (file)
@@ -438,14 +438,8 @@ en:
         us_postcode: 'Results from <a href="http://geocoder.us/">Geocoder.us</a>'
         uk_postcode: 'Results from <a href="http://www.npemap.org.uk/">NPEMap / FreeThe Postcode</a>'
         ca_postcode: 'Results from <a href="http://geocoder.ca/">Geocoder.CA</a>'
-        osm_namefinder: 'Results from <a href="http://gazetteer.openstreetmap.org/namefinder/">OpenStreetMap Namefinder</a>'
         osm_nominatim: 'Results from <a href="http://nominatim.openstreetmap.org/">OpenStreetMap Nominatim</a>'
         geonames: 'Results from <a href="http://www.geonames.org/">GeoNames</a>'
-    search_osm_namefinder:
-      prefix: "%{type}"
-      suffix_place: ", %{distance} %{direction} of %{placename}"
-      suffix_parent: "%{suffix} (%{parentdistance} %{parentdirection} of %{parentname})"
-      suffix_suburb: "%{suffix}, %{parentname}"
     search_osm_nominatim:
       prefix_format: "%{name}"
       prefix:
@@ -911,15 +905,12 @@ en:
           weir: "Weir"
     description:
       title:
-        osm_namefinder: '%{types} from <a href="http://gazetteer.openstreetmap.org/namefinder/">OpenStreetMap Namefinder</a>'
         osm_nominatim: 'Location from <a href="http://nominatim.openstreetmap.org/">OpenStreetMap Nominatim</a>'
         geonames: 'Location from <a href="http://www.geonames.org/">GeoNames</a>'
       types:
         cities: Cities
         towns: Towns
         places: Places
-    description_osm_namefinder:
-      prefix: "%{distance} %{direction} of %{type}"
     results:
       no_results: "No results found"
       more_results: "More results"