X-Git-Url: https://git.openstreetmap.org./rails.git/blobdiff_plain/ce53e510adb1baed6cc8f27e48d810a586853e55..34e251c225c7903b64f1fda2b594dd1c70aeeb93:/app/assets/javascripts/index.js diff --git a/app/assets/javascripts/index.js b/app/assets/javascripts/index.js index 2f0c16097..4724351ce 100644 --- a/app/assets/javascripts/index.js +++ b/app/assets/javascripts/index.js @@ -19,7 +19,7 @@ $(document).ready(function () { map.attributionControl.setPrefix(''); - new L.Hash(map); + map.hash = L.hash(map); var layers = [ new L.OSM.Mapnik({ @@ -48,10 +48,18 @@ $(document).ready(function () { }) ]; - layers[0].addTo(map); + for (var i = layers.length - 1; i >= 0; i--) { + if (i === 0 || params.layers.indexOf(layers[i].options.code) >= 0) { + map.addLayer(layers[i]); + break; + } + } + + map.noteLayer = new L.LayerGroup(); + map.noteLayer.options = {code: 'N'}; - map.noteLayer = new L.LayerGroup({code: 'N'}); map.dataLayer = new L.OSM.DataLayer(null); + map.dataLayer.options.code = 'D'; $("#sidebar").on("opened closed", function () { map.invalidateSize(); @@ -81,8 +89,6 @@ $(document).ready(function () { L.OSM.share({ position: position, - getShortUrl: getShortUrl, - getUrl: getUrl, sidebar: sidebar, short: true }).addTo(map); @@ -115,27 +121,12 @@ $(document).ready(function () { }).addTo(map); } - if (params.layers) { - var foundLayer = false; - for (var i = 0; i < layers.length; i++) { - if (params.layers.indexOf(layers[i].options.code) >= 0) { - map.addLayer(layers[i]); - foundLayer = true; - } else { - map.removeLayer(layers[i]); - } - } - if (!foundLayer) { - map.addLayer(layers[0]); - } - } - if (params.marker) { L.marker([params.mlat, params.mlon], {icon: getUserIcon()}).addTo(map.markerLayer); } if (params.object) { - addObjectToMap(params.object, map, { zoom: params.object_zoom }); + map.addObject(params.object, { zoom: params.object_zoom }); } $("body").on("click", "a.set_position", setPositionLink(map)); @@ -163,8 +154,8 @@ $(document).ready(function () { } initializeExport(map); - initializeBrowse(map); - initializeNotes(map); + initializeBrowse(map, params); + initializeNotes(map, params); }); function updateLocation() { @@ -176,6 +167,9 @@ function updateLocation() { var expiry = new Date(); expiry.setYear(expiry.getFullYear() + 10); $.cookie("_osm_location", cookieContent(this), { expires: expiry }); + + // Trigger hash update on layer changes. + this.hash.onMapMove(); } function setPositionLink(map) { @@ -191,7 +185,7 @@ function setPositionLink(map) { } if (data.type && data.id) { - addObjectToMap(data, map, { zoom: true, style: { opacity: 0.2, fill: false } }); + map.addObject(data, { zoom: true, style: { opacity: 0.2, fill: false } }); } map.markerLayer.clearLayers();