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}).addTo(map);
  // Add OpenStreetMap layer
  layers.addBaseLayer(L.tileLayer("//{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 %>, {
    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 %>);
  <% end -%>
  <% if layer[:default] -%>
  // Add <%= layer[:name] %> to map
  <%= layer[:name] %>.addTo(map);
  <% end -%>
  <% end -%>
  // Add the permalink control
  map.addControl(new L.Control.Permalink());
  return map;
}