]> git.openstreetmap.org Git - chef.git/blob - cookbooks/imagery/templates/default/imagery.js.erb
imagery: simplify layer/overlay code
[chef.git] / cookbooks / imagery / templates / default / imagery.js.erb
1 function createMap(divName) {
2   // Create a map
3   var map = L.map(divName).fitBounds(<%= @bbox.to_json %>);
4
5   // Create a layer switcher
6   var layers = L.control.layers();
7
8   // Add OpenStreetMap layer
9   layers.addBaseLayer(L.tileLayer("http://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png", {
10     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>",
11     maxZoom: 19
12   }), "OpenStreetMap");
13
14   <% @layers.sort_by { |layer| layer[:name] }.each do |layer| -%>
15   // Create <%= layer[:name] %> layer
16   var <%= layer[:name] %> = L.tileLayer(<%= layer[:url].to_json %>, {
17     attribution: <%= layer[:attribution].to_json %>,
18     maxZoom: <%= layer[:maxZoom].to_json %>
19   });
20
21   // Add <%= layer[:name] %> to layer switcher
22   <% if layer[:overlay] -%>
23   layers.addBaseLayer(<%= layer[:name] %>, <%= layer[:title].to_json %>);
24   <% else %>
25   layers.addOverlay(<%= layer[:name] %>, <%= layer[:title].to_json %>);
26   <% end -%>
27
28   <% if layer[:default] -%>
29   // Add <%= layer[:name] %> to map
30   <%= layer[:name] %>.addTo(map);
31   <% end -%>
32   <% end -%>
33
34   // Add the layer switch to the mao
35   layers.addTo(map);
36
37   return map;
38 }