]> git.openstreetmap.org Git - rails.git/commitdiff
Merge remote-tracking branch 'upstream/pull/4395'
authorTom Hughes <tom@compton.nu>
Sun, 10 Dec 2023 18:50:00 +0000 (18:50 +0000)
committerTom Hughes <tom@compton.nu>
Sun, 10 Dec 2023 18:50:00 +0000 (18:50 +0000)
app/controllers/site_controller.rb
app/views/site/key.html.erb
config/key.yml

index 5fb8aa111183455586693a2f601024e40e674d55..862148b9223548bf1d1aa5a074b37dd21533bcca 100644 (file)
@@ -48,6 +48,12 @@ class SiteController < ApplicationController
 
   def key
     expires_in 7.days, :public => true
+    @key = YAML.load_file(Rails.root.join("config/key.yml"))
+    @key.each_value do |layer_data|
+      layer_data.each_cons(2) do |entry, next_entry|
+        entry["max_zoom"] = next_entry["min_zoom"] - 1 if entry["name"] == next_entry["name"] && !entry["max_zoom"] && next_entry["min_zoom"]
+      end
+    end
     render :layout => false
   end
 
index d3da868569dbd97fff87ab6b927ed6f93525f654..60eff9a445d6ace0a15af81cec00414575fd48d6 100644 (file)
@@ -1,13 +1,13 @@
 <div id="mapkey">
   <table class="table table-sm table-borderless mapkey-table mb-0">
-    <% YAML.load_file(Rails.root.join("config/key.yml")).each do |name,data| %>
-      <% data.each do |entry| %>
-        <%= tag.tr :class => "mapkey-table-entry", :data => { :layer => name, :zoom_min => entry["min_zoom"], :zoom_max => entry["max_zoom"] } do %>
+    <% @key.each do |layer_name, layer_data| %>
+      <% layer_data.each do |entry| %>
+        <%= tag.tr :class => "mapkey-table-entry", :data => { :layer => layer_name, :zoom_min => entry["min_zoom"], :zoom_max => entry["max_zoom"] } do %>
           <td class="mapkey-table-key align-middle">
             <% if entry["width"] && entry["height"] && entry["fill"] %>
               <%= image_tag "data:image/svg+xml,#{u("<svg xmlns='http://www.w3.org/2000/svg' width='#{entry['width']}' height='#{entry['height']}'><rect width='100%' height='100%' fill='#{entry['fill']}' /></svg>")}" %>
             <% else %>
-              <%= image_tag "key/#{name}/#{entry['image']}" %>
+              <%= image_tag "key/#{layer_name}/#{entry['image']}" %>
             <% end %>
           </td>
           <td class="mapkey-table-value">
index 8314533377663004d616869945c04dcbe61fe16c..5ee24e9137428bdf3efc7c181a9a8d253f388e44 100644 (file)
@@ -95,25 +95,40 @@ cyclemap:
   - { min_zoom: 14, max_zoom: 19, name: bicycle_parking, image: bicycle_parking.png }
   - { min_zoom: 16, max_zoom: 19, name: toilets, image: toilets.png }
 opnvkarte:
-  - { min_zoom: 6, max_zoom: 7, name: rail, width: 52, height: 1, fill: "#868686" }
-  - { min_zoom: 8, max_zoom: 10, name: rail, width: 52, height: 2, fill: "#868686" }
-  - { min_zoom: 11, max_zoom: 14, name: rail, image: rail11.svg }
-  - { min_zoom: 15, max_zoom: 16, name: rail, image: rail15.svg }
+  - { min_zoom:  6, name: rail, width: 52, height: 1, fill: "#868686" }
+  - { min_zoom:  8, name: rail, width: 52, height: 2, fill: "#868686" }
+  - { min_zoom: 11, name: rail, image: rail11.svg }
+  - { min_zoom: 15, name: rail, image: rail15.svg }
   - { min_zoom: 17, name: rail, image: rail17.svg }
-  - { min_zoom: 6, max_zoom: 9, name: train, width: 52, height: 2, fill: "#ffc366" }
-  - { min_zoom: 10, max_zoom: 11, name: train, width: 52, height: 3, fill: "#ffc366" }
-  - { min_zoom: 12, name: train, width: 52, height: 4, fill: "#ffc366" }
-  - { min_zoom: 10, name: light_rail, width: 52, height: 4, fill: "#66ff66" }
-  - { min_zoom: 10, name: tram_only, width: 52, height: 4, fill: "#3333fe" }
-  - { min_zoom: 10, name: subway, width: 52, height: 4, fill: "#33339f" }
-  - { min_zoom: 9, max_zoom: 13, name: ferry, width: 52, height: 2, fill: "#9f339f" }
+  - { min_zoom:  6, name: train, width: 52, height:  2, fill: "#ffc366" }
+  - { min_zoom: 10, name: train, width: 52, height:  3, fill: "#ffc366" }
+  - { min_zoom: 12, name: train, width: 52, height:  4, fill: "#ffc366" }
+  - { min_zoom: 14, name: train, width: 52, height:  8, fill: "#ffc366" }
+  - { min_zoom: 16, name: train, width: 52, height: 10, fill: "#ffc366" }
+  - { min_zoom: 10, name: light_rail, width: 52, height:  3, fill: "#66ff66" }
+  - { min_zoom: 12, name: light_rail, width: 52, height:  4, fill: "#66ff66" }
+  - { min_zoom: 14, name: light_rail, width: 52, height:  8, fill: "#66ff66" }
+  - { min_zoom: 16, name: light_rail, width: 52, height: 10, fill: "#66ff66" }
+  - { min_zoom: 10, name: tram_only, width: 52, height:  3, fill: "#3333fe" }
+  - { min_zoom: 12, name: tram_only, width: 52, height:  4, fill: "#3333fe" }
+  - { min_zoom: 14, name: tram_only, width: 52, height:  8, fill: "#3333fe" }
+  - { min_zoom: 16, name: tram_only, width: 52, height: 10, fill: "#3333fe" }
+  - { min_zoom: 10, name: subway, width: 52, height:  3, fill: "#33339f" }
+  - { min_zoom: 12, name: subway, width: 52, height:  4, fill: "#33339f" }
+  - { min_zoom: 14, name: subway, width: 52, height:  8, fill: "#33339f" }
+  - { min_zoom: 16, name: subway, width: 52, height: 10, fill: "#33339f" }
+  - { min_zoom:  9, name: ferry, width: 52, height: 2, fill: "#9f339f" }
   - { min_zoom: 14, name: ferry, width: 52, height: 3, fill: "#9f339f" }
-  - { min_zoom: 10, name: trolleybus, width: 52, height: 4, fill: "#9f3333" }
-  - { min_zoom: 11, max_zoom: 11, name: bus, width: 52, height: 1, fill: "#fe3333" }
-  - { min_zoom: 12, max_zoom: 12, name: bus, width: 52, height: 2, fill: "#fe3333" }
-  - { min_zoom: 13, max_zoom: 13, name: bus, width: 52, height: 3, fill: "#fe3333" }
-  - { min_zoom: 14, name: bus, width: 52, height: 4, fill: "#fe3333" }
-  - { min_zoom: 13, max_zoom: 14, name: bus_stop, image: bus_stop13.svg }
+  - { min_zoom: 10, name: trolleybus, width: 52, height:  3, fill: "#9f3333" }
+  - { min_zoom: 12, name: trolleybus, width: 52, height:  4, fill: "#9f3333" }
+  - { min_zoom: 14, name: trolleybus, width: 52, height:  8, fill: "#9f3333" }
+  - { min_zoom: 16, name: trolleybus, width: 52, height: 10, fill: "#9f3333" }
+  - { min_zoom: 11, name: bus, width: 52, height:  1, fill: "#fe3333" }
+  - { min_zoom: 12, name: bus, width: 52, height:  2, fill: "#fe3333" }
+  - { min_zoom: 13, name: bus, width: 52, height:  3, fill: "#fe3333" }
+  - { min_zoom: 14, name: bus, width: 52, height:  4, fill: "#fe3333" }
+  - { min_zoom: 16, name: bus, width: 52, height: 10, fill: "#fe3333" }
+  - { min_zoom: 13, name: bus_stop, image: bus_stop13.svg }
   - { min_zoom: 15, name: bus_stop, image: bus_stop15.svg }
-  - { min_zoom: 13, max_zoom: 14, name: stop, image: stop13.svg }
+  - { min_zoom: 13, name: stop, image: stop13.svg }
   - { min_zoom: 15, name: stop, image: stop15.svg }