]> git.openstreetmap.org Git - chef.git/blob - cookbooks/imagery/templates/default/imagery.js.erb
35168e4bb2d9f738e684e3361f5082159e196037
[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 layer and overlays variables
6   var leaflet_layers = {}
7   var leaflet_overlays = {}
8
9   // Add OpenStreetMap layer
10   leaflet_layers["OpenStreetMap"] = L.tileLayer("http://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png", {
11     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>",
12     maxZoom: 19
13   });
14
15   <% @layers.sort_by { |layer| layer[:name] }.each do |layer| -%>
16
17   <% if layer[:overlay] -%>
18   // Create <%= layer[:name] %> overlay
19   var leaflet_overlays[<%= layer[:name] %>] = L.tileLayer(<%= layer[:url].to_json %>, {
20     attribution: <%= layer[:attribution].to_json %>,
21     maxZoom: <%= layer[:maxZoom].to_json %>
22   });
23
24   <% if layer[:default] -%>
25   // Add <%= layer[:name] %> to map
26   leaflet_overlays[<%= layer[:name] %>].addTo(map);
27   <% end -%>
28
29   <% else %>
30   // Create <%= layer[:name] %> layer
31   var leaflet_layers[<%= layer[:name] %>] = L.tileLayer(<%= layer[:url].to_json %>, {
32     attribution: <%= layer[:attribution].to_json %>,
33     maxZoom: <%= layer[:maxZoom].to_json %>
34   });
35
36   <% if layer[:default] -%>
37   // Add <%= layer[:name] %> to map
38   leaflet_layers[<%= layer[:name] %>].addTo(map);
39   <% end -%>
40
41   <% end -%>
42   <% end -%>
43
44   // Create a layer switcher
45   var layers = L.control.layers(leaflet_layers, leaflet_overlays, {collapsed:false});
46
47   // Add the layer switch to the mao
48   layers.addTo(map);
49   map.addControl(new L.Control.Permalink({text: 'Permalink', layers: leaflet_layers, overlays: leaflet_overlays}));
50   return map;
51 }