]> git.openstreetmap.org Git - rails.git/blobdiff - app/assets/javascripts/map.js.erb
Wrap longitude values explicitly
[rails.git] / app / assets / javascripts / map.js.erb
index 393e9cae7d3e88f3b3a01b718e084fe37a8934e2..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;
   },
@@ -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);
+  }
 }