diff options
-rw-r--r-- | main.js | 20 |
1 files changed, 14 insertions, 6 deletions
@@ -87,10 +87,7 @@ const extent = [110720, 6927136, 1159296, 7975712]; * https://www.lantmateriet.se/sv/om-lantmateriet/press/nyheter/lantmateriets-arbete-mot-oppna-data-i-full-gang/ */ const baseMapSource = new WMTS({ - // XXX the 'layer' parameter should be passed in the options - // dictionary (like style and version), but there is no setLayer() - // method to switch from/to the toned down map - url: 'https://minkarta.lantmateriet.se/map/topowebbcache?layer=topowebb', + url: undefined, version: '1.0.0', style: 'default', matrixSet: '3006', @@ -121,6 +118,7 @@ const view = new View({ constrainResolution: false, }); +let baseMapLayer = 'topowebb'; (function() { const params = new URLSearchParams(window.location.hash.substring(1)); const x = parseFloat(params.get('x')); @@ -132,6 +130,11 @@ const view = new View({ if (!isNaN(z)) { view.setZoom(z); } + + if (params.has('basemap')) { + baseMapLayer = params.get('basemap'); + } + baseMapSource.setUrl(`https://minkarta.lantmateriet.se/map/topowebbcache?LAYER=${encodeURIComponent(baseMapLayer)}`); })(); @@ -793,9 +796,14 @@ map.addLayer(vectorLayer); label.setAttribute('for', input.id); label.innerHTML = 'Nedtonad bakgrund karta'; + input.checked = baseMapLayer === 'topowebb_nedtonad'; input.onchange = function(event) { - const layer = event.target.checked ? 'topowebb_nedtonad' : 'topowebb'; - baseMapSource.setUrl('https://minkarta.lantmateriet.se/map/topowebbcache?LAYER=' + layer); + baseMapLayer = event.target.checked ? 'topowebb_nedtonad' : 'topowebb'; + baseMapSource.setUrl(`https://minkarta.lantmateriet.se/map/topowebbcache?LAYER=${encodeURIComponent(baseMapLayer)}`); + + const searchParams = new URLSearchParams(location.hash.substring(1)); + searchParams.set('basemap', baseMapLayer); + location.hash = '#' + searchParams.toString(); }; })(); })(); |