X-Git-Url: https://git.openstreetmap.org/rails.git/blobdiff_plain/1be46302e47eb517525d2afb52ffc5d3a9cbf917..bea82b27ba363b1ac26f9486c4b6c472ecee8069:/app/controllers/geocoder_controller.rb diff --git a/app/controllers/geocoder_controller.rb b/app/controllers/geocoder_controller.rb index 34a90935e..69c35e0e3 100644 --- a/app/controllers/geocoder_controller.rb +++ b/app/controllers/geocoder_controller.rb @@ -31,7 +31,8 @@ private unless response.match(/couldn't find this zip/) data = response.split(/\s*,\s+/) # lat,long,town,state,zip results.push({:lat => data[0], :lon => data[1], :zoom => 12, - :description => "#{data[2]}, #{data[3]}, #{data[4]}"}) + :prefix => "#{data[2]}, #{data[3]}, ", + :name => data[4]}) end return { :source => "Geocoder.us", :url => "http://geocoder.us/", :results => results } @@ -50,7 +51,7 @@ private dataline = response.split(/\n/)[1] data = dataline.split(/,/) # easting,northing,postcode,lat,long results.push({:lat => data[3], :lon => data[4], :zoom => 12, - :description => data[2].gsub(/'/, "")}) + :name => data[2].gsub(/'/, "")}) end return { :source => "NPEMap / FreeThePostcode", :url => "http://www.npemap.org.uk/", :results => results } @@ -69,7 +70,7 @@ private results.push({:lat => response.get_text("geodata/latt").to_s, :lon => response.get_text("geodata/longt").to_s, :zoom => 12, - :description => query.upcase}) + :name => query.upcase}) end return { :source => "Geocoder.CA", :url => "http://geocoder.ca/", :results => results } @@ -91,16 +92,24 @@ private 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 = "#{type} " + end if place distance = format_distance(place.attributes["approxdistance"].to_i) direction = format_direction(place.attributes["direction"].to_i) placename = place.attributes["name"].to_s - results.push({:lat => lat, :lon => lon, :zoom => zoom, - :description => "#{type} #{name}, #{distance} #{direction} of #{placename}"}) + suffix = ", #{distance} #{direction} of #{placename}" else - results.push({:lat => lat, :lon => lon, :zoom => zoom, - :description => "#{type} #{name}"}) + suffix = "" end + results.push({:lat => lat, :lon => lon, :zoom => zoom, + :prefix => prefix, :name => name, :suffix => suffix, + :description => description}) end return { :source => "OpenStreetMap Namefinder", :url => "http://www.frankieandshadow.com/osm/", :results => results } @@ -121,7 +130,8 @@ private name = geoname.get_text("name").to_s country = geoname.get_text("countryName").to_s results.push({:lat => lat, :lon => lon, :zoom => 12, - :description => "#{name}, #{country}"}) + :name => name, + :suffix => ", #{country}"}) end return { :source => "GeoNames", :url => "http://www.geonames.org/", :results => results }