Without this we get an error if we add a layer that is in the
layer switcher to the map before the switcher is added.
var map = L.map(divName).fitBounds(<%= @bbox.to_json %>);
// Create a layer switcher
var map = L.map(divName).fitBounds(<%= @bbox.to_json %>);
// Create a layer switcher
- var layers = L.control.layers(null, null, {collapsed:false});
+ 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: "© <a target=\"_parent\" href=\"http://www.openstreetmap.org\">OpenStreetMap</a> and contributors, under an <a target=\"_parent\" href=\"http://www.openstreetmap.org/copyright\">open license</a>",
maxZoom: 19
}), "OpenStreetMap");
// Add OpenStreetMap layer
layers.addBaseLayer(L.tileLayer("//{s}.tile.openstreetmap.org/{z}/{x}/{y}.png", {
attribution: "© <a target=\"_parent\" href=\"http://www.openstreetmap.org\">OpenStreetMap</a> and contributors, under an <a target=\"_parent\" href=\"http://www.openstreetmap.org/copyright\">open license</a>",
maxZoom: 19
}), "OpenStreetMap");
<% @layers.sort_by { |layer| layer[:name] }.each do |layer| -%>
<% @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 %>,
// Create <%= layer[:name] %> layer
var <%= layer[:name] %> = L.tileLayer(<%= layer[:url].to_json %>, {
attribution: <%= layer[:attribution].to_json %>,
- // Add the layer switch to the mao
- layers.addTo(map);
+ // Add the permalink control
map.addControl(new L.Control.Permalink());
map.addControl(new L.Control.Permalink());