X-Git-Url: https://git.openstreetmap.org./rails.git/blobdiff_plain/d0ed118ee24401a7e6117efa74522e67a9babba6..dc8751cf7af7ce0e0033c078dac064d62ab819e6:/app/assets/javascripts/index.js diff --git a/app/assets/javascripts/index.js b/app/assets/javascripts/index.js index 753cf4740..6ea276230 100644 --- a/app/assets/javascripts/index.js +++ b/app/assets/javascripts/index.js @@ -1,46 +1,14 @@ //= require_self +//= require leaflet.sidebar +//= require leaflet.locate //= require leaflet.layers -//= require leaflet.share +//= require leaflet.key //= require leaflet.note -//= require leaflet.locate -//= require leaflet.customzoom +//= require leaflet.share //= require index/browse //= require index/export -//= require index/key //= require index/notes -function allLayers() { - return [{ - layer: new L.OSM.Mapnik({ - attribution: '', - code: "M" - }), - keyid: "mapnik", - name: I18n.t("javascripts.map.base.standard") - }, { - layer: new L.OSM.CycleMap({ - attribution: "Tiles courtesy of Andy Allan", - code: "C" - }), - keyid: "cyclemap", - name: I18n.t("javascripts.map.base.cycle_map") - }, { - layer: new L.OSM.TransportMap({ - attribution: "Tiles courtesy of Andy Allan", - code: "T" - }), - keyid: "transportmap", - name: I18n.t("javascripts.map.base.transport_map") - }, { - layer: new L.OSM.MapQuestOpen({ - attribution: "Tiles courtesy of MapQuest ", - code: "Q" - }), - keyid: "mapquest", - name: I18n.t("javascripts.map.base.mapquest") - }]; -} - $(document).ready(function () { var params = OSM.mapParams(); @@ -51,33 +19,75 @@ $(document).ready(function () { map.attributionControl.setPrefix(''); - var layers = allLayers(); + var layers = [ + new L.OSM.Mapnik({ + attribution: '', + code: "M", + keyid: "mapnik", + name: I18n.t("javascripts.map.base.standard") + }), + new L.OSM.CycleMap({ + attribution: "Tiles courtesy of Andy Allan", + code: "C", + keyid: "cyclemap", + name: I18n.t("javascripts.map.base.cycle_map") + }), + new L.OSM.TransportMap({ + attribution: "Tiles courtesy of Andy Allan", + code: "T", + keyid: "transportmap", + name: I18n.t("javascripts.map.base.transport_map") + }), + new L.OSM.MapQuestOpen({ + attribution: "Tiles courtesy of MapQuest ", + code: "Q", + keyid: "mapquest", + name: I18n.t("javascripts.map.base.mapquest") + }) + ]; + + layers[0].addTo(map); - layers[0].layer.addTo(map); + map.noteLayer = new L.LayerGroup({code: 'N'}); + map.dataLayer = new L.OSM.DataLayer(null); $("#map").on("resized", function () { map.invalidateSize(); }); - L.control.customZoom({position: 'topright'}) + L.OSM.zoom({position: 'topright'}) + .addTo(map); + + L.control.locate({position: 'topright'}) .addTo(map); - var uiPane = $('#map-ui')[0]; + var sidebar = L.OSM.sidebar('#map-ui'); L.OSM.layers({ position: 'topright', layers: layers, - uiPane: uiPane + sidebar: sidebar }).addTo(map); - L.control.share({ - getUrl: getShortUrl, - uiPane: uiPane + L.OSM.key({ + position: 'topright', + sidebar: sidebar }).addTo(map); - L.control.note({ position: 'topright' }).addTo(map); - L.control.locate({ position: 'topright' }).addTo(map); - L.control.scale().addTo(map); + L.OSM.share({ + getShortUrl: getShortUrl, + getUrl: getUrl, + sidebar: sidebar, + short: true + }).addTo(map); + + L.OSM.note({ + position: 'topright', + sidebar: sidebar + }).addTo(map); + + L.control.scale() + .addTo(map); map.on('moveend layeradd layerremove', updateLocation); @@ -105,15 +115,15 @@ $(document).ready(function () { if (params.layers) { var foundLayer = false; for (var i = 0; i < layers.length; i++) { - if (params.layers.indexOf(layers[i].layer.options.code) >= 0) { - map.addLayer(layers[i].layer); + if (params.layers.indexOf(layers[i].options.code) >= 0) { + map.addLayer(layers[i]); foundLayer = true; } else { - map.removeLayer(layers[i].layer); + map.removeLayer(layers[i]); } } if (!foundLayer) { - map.addLayer(layers[0].layer); + map.addLayer(layers[0]); } } @@ -152,38 +162,16 @@ $(document).ready(function () { if (!("autofocus" in document.createElement("input"))) { $("#query").focus(); } -}); -// non-scoped utilities -function getMapBaseLayer() { - for (var i = 0; i < layers.length; i++) { - if (map.hasLayer(layers[i].layer)) { - return layers[i]; - } - } -} - -function getMapLayers(map) { - var layerConfig = ''; - for (var i in map._layers) { // TODO: map.eachLayer - var layer = map._layers[i]; - if (layer.options && layer.options.code) { - layerConfig += layer.options.code; - } - } - return layerConfig; -} - -// generate a cookie-safe string of map state -function cookieContent(map) { - var center = map.getCenter().wrap(); - return [center.lng, center.lat, map.getZoom(), getMapLayers(map)].join('|'); -} + initializeExport(map); + initializeBrowse(map); + initializeNotes(map); +}); function updateLocation() { updatelinks(this.getCenter().wrap(), this.getZoom(), - getMapLayers(this), + this.getLayersCode(), this.getBounds().wrap(), {}); var expiry = new Date();