]> git.openstreetmap.org Git - chef.git/blobdiff - cookbooks/imagery/templates/default/imagery.js.erb
imagery: just add basic permalink support for now
[chef.git] / cookbooks / imagery / templates / default / imagery.js.erb
index a5ac8f42a6eca69df349deeafe99b30655ce4abe..f992ef08df07c73e7de6ec7d66f4c154a7af70d9 100644 (file)
@@ -1,9 +1,9 @@
 function createMap(divName) {
   // Create a map
-  var map = L.map(divName);
+  var map = L.map(divName).fitBounds(<%= @bbox.to_json %>);
 
   // Create a layer switcher
-  var layers = L.control.layers();
+  var layers = L.control.layers(null, null, {collapsed:false});
 
   // Add OpenStreetMap layer
   layers.addBaseLayer(L.tileLayer("http://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png", {
@@ -11,27 +11,28 @@ function createMap(divName) {
     maxZoom: 19
   }), "OpenStreetMap");
 
-  <% @layers.each do |layer| -%>
-  // Add <%= layer[:name].to_json %> layer
-  layers.addBaseLayer(L.tileLayer(<%= layer[:url].to_json %>, {
+  <% @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 %>
-  }), <%= layer[:name].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 -%>
-  <% @overlays.each do |layer| -%>
-  // Add <%= layer[:name].to_json %> layer
-  layers.addOverlay(L.tileLayer(<%= layer[:url].to_json %>, {
-    attribution: <%= layer[:attribution].to_json %>,
-    maxZoom: <%= layer[:maxZoom].to_json %>
-  }), <%= layer[:name].to_json %>);
 
+  <% if layer[:default] -%>
+  // Add <%= layer[:name] %> to map
+  <%= layer[:name] %>.addTo(map);
+  <% end -%>
   <% end -%>
+
   // Add the layer switch to the mao
   layers.addTo(map);
-
-  // Zoom to specified bounds
-  map.fitBounds(<%= @bbox.to_json %>);
-
+  map.addControl(new L.Control.Permalink());
   return map;
 }