X-Git-Url: https://git.openstreetmap.org/rails.git/blobdiff_plain/f6ac8ffbab8b9fee13bbcf7537cabb460eb40aae..1f8bbc25746968d3a5859118d83c8f8b2f539230:/app/assets/javascripts/map.js.erb diff --git a/app/assets/javascripts/map.js.erb b/app/assets/javascripts/map.js.erb index 00aec6484..928575eb5 100644 --- a/app/assets/javascripts/map.js.erb +++ b/app/assets/javascripts/map.js.erb @@ -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); + } }