imagery: simplify layer/overlay code
authorGrant Slater <git@firefishy.com>
Fri, 3 Jun 2016 00:11:05 +0000 (01:11 +0100)
committerGrant Slater <git@firefishy.com>
Fri, 3 Jun 2016 00:11:05 +0000 (01:11 +0100)
cookbooks/imagery/resources/layer.rb
cookbooks/imagery/templates/default/imagery.js.erb

index 8c98e5ddbd4b60a274cf2d6a11dc721632bccbce..343ad69407d91352e4d6faddb666ab54bbbdce8b 100644 (file)
@@ -41,29 +41,21 @@ property :overlay, [TrueClass, FalseClass], :default => false
 property :default_layer, [TrueClass, FalseClass], :default => false
 
 action :create do
-  file "create layer yaml definition" do
+  file "/srv/imagery/layers/#{site}/#{layer}.yml" do
     owner "root"
     group "root"
     mode 0644
-    if new_resource.overlay
-      path "/srv/imagery/overlays/#{site}/#{layer}.yml"
-    else
-      path "/srv/imagery/layers/#{site}/#{layer}.yml"
-    end
     content YAML.dump(:name => layer,
                       :title => title || layer,
                       :url => "http://{s}.#{site}/layer/#{layer}/{z}/{x}/{y}.png",
                       :attribution => copyright,
                       :default => default_layer,
-                      :maxZoom => max_zoom)
+                      :maxZoom => max_zoom,
+                      :overlay => overlay)
   end
 
-  file "remove old layer yaml" do
-    if new_resource.overlay
-      path "/srv/imagery/layers/#{site}/#{layer}.yml" # remove layer if overlay
-    else
-      path "/srv/imagery/overlays/#{site}/#{layer}.yml" # remove overlay if layer
-    end
+  file "remove old overlay yaml" do
+    path "/srv/imagery/overlays/#{site}/#{layer}.yml"
     action :delete
   end
 
index 58e9b0fea89a195ace8b1d179ffcc90af75add0b..fa70ed457f785ee95188adf59faa672c402f3854 100644 (file)
@@ -1,6 +1,6 @@
 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();
@@ -19,26 +19,20 @@ function createMap(divName) {
   });
 
   // Add <%= layer[:name] %> to layer switcher
+  <% if layer[:overlay] -%>
   layers.addBaseLayer(<%= layer[:name] %>, <%= layer[:title].to_json %>);
+  <% else %>
+  layers.addOverlay(<%= layer[:name] %>, <%= layer[:title].to_json %>);
+  <% end -%>
 
   <% if layer[:default] -%>
   // Add <%= layer[:name] %> to map
   <%= layer[:name] %>.addTo(map);
   <% end -%>
   <% end -%>
-  <% @overlays.sort_by { |layer| layer[:name] }.each do |layer| -%>
-  // Add <%= layer[:name] %> to layer switcher
-  layers.addOverlay(L.tileLayer(<%= layer[:url].to_json %>, {
-    attribution: <%= layer[:attribution].to_json %>,
-    maxZoom: <%= layer[:maxZoom].to_json %>
-  }), <%= layer[:title].to_json %>);
 
-  <% end -%>
   // Add the layer switch to the mao
   layers.addTo(map);
 
-  // Zoom to specified bounds
-  map.fitBounds(<%= @bbox.to_json %>);
-
   return map;
 }