]> git.openstreetmap.org Git - chef.git/blobdiff - cookbooks/imagery/templates/default/imagery.js.erb
imagery: add locatejs image assets
[chef.git] / cookbooks / imagery / templates / default / imagery.js.erb
index 35168e4bb2d9f738e684e3361f5082159e196037..713aa03bd5afd64717775c56f4cb7251ddc03cb6 100644 (file)
@@ -1,51 +1,46 @@
 function createMap(divName) {
   // Create a map
-  var map = L.map(divName).fitBounds(<%= @bbox.to_json %>);
+  var map = L.map(divName, {
+    worldCopyJump: true
+  }).fitBounds(<%= @bbox.to_json %>);
 
-  // Create layer and overlays variables
-  var leaflet_layers = {}
-  var leaflet_overlays = {}
+  // Create a layer switcher
+  var layers = L.control.layers(null, null, {collapsed:false}).addTo(map);
 
   // Add OpenStreetMap layer
-  leaflet_layers["OpenStreetMap"] = L.tileLayer("http://{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>",
+  layers.addBaseLayer(L.tileLayer("https://tile.openstreetmap.org/{z}/{x}/{y}.png", {
+    attribution: "© <a target=\"_parent\" href=\"https://www.openstreetmap.org\">OpenStreetMap</a> and contributors, under an <a target=\"_parent\" href=\"https://www.openstreetmap.org/copyright\">open license</a>",
     maxZoom: 19
-  });
-
+  }), "OpenStreetMap");
   <% @layers.sort_by { |layer| layer[:name] }.each do |layer| -%>
 
-  <% if layer[:overlay] -%>
-  // Create <%= layer[:name] %> overlay
-  var leaflet_overlays[<%= layer[:name] %>] = L.tileLayer(<%= layer[:url].to_json %>, {
+  // Create <%= layer[:name] %> layer
+  var <%= layer[:name] %> = L.tileLayer(<%= layer[:url].to_json %>, {
     attribution: <%= layer[:attribution].to_json %>,
     maxZoom: <%= layer[:maxZoom].to_json %>
   });
 
-  <% if layer[:default] -%>
-  // Add <%= layer[:name] %> to map
-  leaflet_overlays[<%= layer[:name] %>].addTo(map);
-  <% end -%>
-
+  // Add <%= layer[:name] %> to layer switcher
+  <% if layer[:overlay] -%>
+  layers.addOverlay(<%= layer[:name] %>, <%= layer[:title].to_json %>);
   <% else %>
-  // Create <%= layer[:name] %> layer
-  var leaflet_layers[<%= layer[:name] %>] = L.tileLayer(<%= layer[:url].to_json %>, {
-    attribution: <%= layer[:attribution].to_json %>,
-    maxZoom: <%= layer[:maxZoom].to_json %>
-  });
+  layers.addBaseLayer(<%= layer[:name] %>, <%= layer[:title].to_json %>);
+  <% end -%>
 
   <% if layer[:default] -%>
   // Add <%= layer[:name] %> to map
-  leaflet_layers[<%= layer[:name] %>].addTo(map);
-  <% end -%>
-
+  <%= layer[:name] %>.addTo(map);
   <% end -%>
   <% end -%>
 
-  // Create a layer switcher
-  var layers = L.control.layers(leaflet_layers, leaflet_overlays, {collapsed:false});
+  // Add the permalink control
+  map.addControl(new L.Control.Permalink());
+
+  var lc = L.control.locate({
+    position: 'topright',
+    icon: '/location-arrow-solid.svg',
+    iconLoading: '/spinner-solid.svg'
+  }).addTo(map);
 
-  // Add the layer switch to the mao
-  layers.addTo(map);
-  map.addControl(new L.Control.Permalink({text: 'Permalink', layers: leaflet_layers, overlays: leaflet_overlays}));
   return map;
 }