]> git.openstreetmap.org Git - rails.git/blobdiff - app/assets/javascripts/map.js.erb
Compute size of rich text preview pane correctly
[rails.git] / app / assets / javascripts / map.js.erb
index 00aec648413b94f7e6262d5cbcce97b7bb82e67b..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,7 +82,7 @@ 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}));
 
@@ -95,6 +99,7 @@ function createMap(divName, options) {
 
   if (options.layerControl) {
     layersControl.addTo(map);
+    map.layersControl = layersControl;
   }
 
   for (var i = 0; i < layers.length; i++) {
@@ -184,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) >= 0) {
       map.addLayer(layers[i].layer);
+      foundLayer = true;
     } else {
       map.removeLayer(layers[i].layer);
     }
   }
+  if (!foundLayer) {
+    map.addLayer(layers[0].layer);
+  }
 }