function createMap(divName) {
// Create a map
var map = L.map(divName).fitBounds(<%= @bbox.to_json %>);
// Create layer and overlays variables
var leaflet_layers = {}
var leaflet_overlays = {}
// Add OpenStreetMap layer
leaflet_layers["OpenStreetMap"] = L.tileLayer("http://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png", {
attribution: "© OpenStreetMap and contributors, under an open license",
maxZoom: 19
});
<% @layers.sort_by { |layer| layer[:name] }.each do |layer| -%>
<% 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 %>
});
<% 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
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;
}