X-Git-Url: https://git.openstreetmap.org./chef.git/blobdiff_plain/e3f8464ccd3ac34ed6629b03f60509ac3a2fedf8..3e3fe7718ee69bb95908dbe474fb4b15d80d329a:/cookbooks/imagery/templates/default/imagery.js.erb diff --git a/cookbooks/imagery/templates/default/imagery.js.erb b/cookbooks/imagery/templates/default/imagery.js.erb index a728ef60e..35168e4bb 100644 --- a/cookbooks/imagery/templates/default/imagery.js.erb +++ b/cookbooks/imagery/templates/default/imagery.js.erb @@ -2,37 +2,50 @@ function createMap(divName) { // Create a map var map = L.map(divName).fitBounds(<%= @bbox.to_json %>); - // Create a layer switcher - var layers = L.control.layers(null, null, {collapsed:false}); + // Create layer and overlays variables + var leaflet_layers = {} + var leaflet_overlays = {} // Add OpenStreetMap layer - layers.addBaseLayer(L.tileLayer("http://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png", { + leaflet_layers["OpenStreetMap"] = L.tileLayer("http://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png", { attribution: "© OpenStreetMap and contributors, under an open license", maxZoom: 19 - }), "OpenStreetMap"); + }); <% @layers.sort_by { |layer| layer[:name] }.each do |layer| -%> - // Create <%= layer[:name] %> layer - var <%= layer[:name] %> = L.tileLayer(<%= layer[:url].to_json %>, { + + <% if layer[:overlay] -%> + // Create <%= layer[:name] %> overlay + var leaflet_overlays[<%= layer[:name] %>] = L.tileLayer(<%= layer[:url].to_json %>, { attribution: <%= layer[:attribution].to_json %>, maxZoom: <%= layer[:maxZoom].to_json %> }); - // Add <%= layer[:name] %> to layer switcher - <% if layer[:overlay] -%> - layers.addOverlay(<%= layer[:name] %>, <%= layer[:title].to_json %>); - <% else %> - layers.addBaseLayer(<%= layer[:name] %>, <%= layer[:title].to_json %>); + <% if layer[:default] -%> + // Add <%= layer[:name] %> to map + leaflet_overlays[<%= layer[:name] %>].addTo(map); <% end -%> + <% else %> + // Create <%= layer[:name] %> layer + var leaflet_layers[<%= layer[:name] %>] = L.tileLayer(<%= layer[:url].to_json %>, { + attribution: <%= layer[:attribution].to_json %>, + maxZoom: <%= layer[:maxZoom].to_json %> + }); + <% if layer[:default] -%> // Add <%= layer[:name] %> to map - <%= layer[:name] %>.addTo(map); + leaflet_layers[<%= layer[:name] %>].addTo(map); + <% end -%> + <% end -%> <% end -%> + // Create a layer switcher + var layers = L.control.layers(leaflet_layers, leaflet_overlays, {collapsed:false}); + // Add the layer switch to the mao layers.addTo(map); - + map.addControl(new L.Control.Permalink({text: 'Permalink', layers: leaflet_layers, overlays: leaflet_overlays})); return map; }