]> git.openstreetmap.org Git - rails.git/blobdiff - app/assets/javascripts/map.js.erb
Merge branch 'master' into notes
[rails.git] / app / assets / javascripts / map.js.erb
index 6701cf74011009fa320ef5616ceeed08a32510fc..928575eb5312a04ec04d86704ec8fcfcaba6d60b 100644 (file)
@@ -1,5 +1,5 @@
 // Leaflet extensions
-L.LatLngBounds.include({
+L.extend(L.LatLngBounds.prototype, {
   getSouthLat: function () {
     return this._southWest.lat;
   },
@@ -29,10 +29,14 @@ L.LatLngBounds.include({
   getSize: function () {
     return (this._northEast.lat - this._southWest.lat) *
            (this._northEast.lng - this._southWest.lng);
+  },
+
+  wrap: function () {
+    return new L.LatLngBounds(this._southWest.wrap(), this._northEast.wrap());
   }
 });
 
-L.Bounds.include({
+L.extend(L.Bounds.prototype, {
   getWidth: function () {
    return this.max.x - this.min.x;
   },
@@ -78,12 +82,12 @@ var layers = [
 ];
 
 function createMap(divName, options) {
-  options = $.extend({zoomControl: false, panZoomControl: true, layerControl: true}, options);
+  options = $.extend({zoomControl: true, panZoomControl: true, layerControl: true}, options);
 
   map = L.map(divName, $.extend({}, options, {panControl: false, zoomsliderControl: false, maxZoom: 18}));
 
   if (map.attributionControl) {
-    map.attributionControl.setPrefix(''); // For tmcw
+    map.attributionControl.setPrefix('');
   }
 
   if (options.panZoomControl) {
@@ -95,16 +99,16 @@ function createMap(divName, options) {
 
   if (options.layerControl) {
     layersControl.addTo(map);
+    map.layersControl = layersControl;
   }
 
   for (var i = 0; i < layers.length; i++) {
     layers[i].layer = new (layers[i].klass)(layers[i]);
-    if (i == 0) {
-      layers[i].layer.addTo(map);
-    }
     layersControl.addBaseLayer(layers[i].layer, layers[i].name);
   }
 
+  layers[0].layer.addTo(map);
+
   $("#" + divName).on("resized", function () {
     map.invalidateSize();
   });
@@ -185,11 +189,16 @@ function getMapLayers() {
 }
 
 function setMapLayers(layerConfig) {
+  var foundLayer = false;
   for (var i = 0; i < layers.length; i++) {
-    if (~layerConfig.indexOf(layers[i].layerCode)) {
+    if (layerConfig.indexOf(layers[i].layerCode) >= 0) {
       map.addLayer(layers[i].layer);
+      foundLayer = true;
     } else {
       map.removeLayer(layers[i].layer);
     }
   }
+  if (!foundLayer) {
+    map.addLayer(layers[0].layer);
+  }
 }