]> git.openstreetmap.org Git - rails.git/blobdiff - app/controllers/geocoder_controller.rb
Fix comments/changes counts wrapping on history pages
[rails.git] / app / controllers / geocoder_controller.rb
index 02ebc8a1bccb565796a62cafb911bbd7bdd17647..5f3b4dbb65875dab909f1dc5c482d20bcb5f1d35 100644 (file)
@@ -101,9 +101,14 @@ class GeocoderController < ApplicationController
       if klass == "boundary" && type == "administrative"
         rank = (place.attributes["address_rank"].to_i + 1) / 2
         prefix_name = t "geocoder.search_osm_nominatim.admin_levels.level#{rank}", :default => prefix_name
+        border_type = nil
+        place_type = nil
+        place_tags = %w[linked_place place]
         place.elements["extratags"].elements.each("tag") do |extratag|
-          prefix_name = t "geocoder.search_osm_nominatim.prefix.place.#{extratag.attributes['value']}", :default => prefix_name if extratag.attributes["key"] == "linked_place" || extratag.attributes["key"] == "place"
+          border_type = t "geocoder.search_osm_nominatim.border_types.#{extratag.attributes['value']}", :default => border_type if extratag.attributes["key"] == "border_type"
+          place_type = t "geocoder.search_osm_nominatim.prefix.place.#{extratag.attributes['value']}", :default => place_type if place_tags.include?(extratag.attributes["key"])
         end
+        prefix_name = place_type || border_type || prefix_name
       end
       prefix = t ".prefix_format", :name => prefix_name
       object_type = place.attributes["osm_type"]
@@ -229,12 +234,12 @@ class GeocoderController < ApplicationController
   end
 
   def to_decdeg(captures)
-    ns = captures.fetch("ns").casecmp("s").zero? ? -1 : 1
+    ns = captures.fetch("ns").casecmp?("s") ? -1 : 1
     nsd = BigDecimal(captures.fetch("nsd", "0"))
     nsm = BigDecimal(captures.fetch("nsm", "0"))
     nss = BigDecimal(captures.fetch("nss", "0"))
 
-    ew = captures.fetch("ew").casecmp("w").zero? ? -1 : 1
+    ew = captures.fetch("ew").casecmp?("w") ? -1 : 1
     ewd = BigDecimal(captures.fetch("ewd", "0"))
     ewm = BigDecimal(captures.fetch("ewm", "0"))
     ews = BigDecimal(captures.fetch("ews", "0"))