Use inline svg for solid map key images

This commit is contained in:
Anton Khorev 2023-12-19 15:41:10 +03:00
parent 0c472ad198
commit f92183e520
2 changed files with 5 additions and 6 deletions

View file

@ -1,8 +1,7 @@
module SvgHelper module SvgHelper
def solid_svg_image_tag(width, height, fill, **options) def solid_svg_tag(width, height, fill, **options)
svg = "<svg xmlns='http://www.w3.org/2000/svg' width='#{width}' height='#{height}'>" \ tag.svg :width => width, :height => height, **options do
"<rect width='100%' height='100%' fill='#{fill}' />" \ tag.rect :width => "100%", :height => "100%", :fill => fill
"</svg>" end
image_tag "data:image/svg+xml,#{u(svg)}", **options
end end
end end

View file

@ -5,7 +5,7 @@
<%= tag.tr :class => "mapkey-table-entry", :data => { :layer => layer_name, :zoom_min => entry["min_zoom"], :zoom_max => entry["max_zoom"] } do %> <%= tag.tr :class => "mapkey-table-entry", :data => { :layer => layer_name, :zoom_min => entry["min_zoom"], :zoom_max => entry["max_zoom"] } do %>
<td> <td>
<% if entry["width"] && entry["height"] && entry["fill"] %> <% if entry["width"] && entry["height"] && entry["fill"] %>
<%= solid_svg_image_tag entry["width"], entry["height"], entry["fill"], :class => "d-block mx-auto" %> <%= solid_svg_tag entry["width"], entry["height"], entry["fill"], :class => "d-block mx-auto" %>
<% else %> <% else %>
<%= image_tag "key/#{layer_name}/#{entry['image']}", :class => "d-block mx-auto" %> <%= image_tag "key/#{layer_name}/#{entry['image']}", :class => "d-block mx-auto" %>
<% end %> <% end %>