nakarte

Source code of https://map.sikmir.ru (fork)
git clone git://git.sikmir.ru/nakarte
Log | Files | Refs | LICENSE

commit 3e9c5b59210be46ef63b3b8cbfa443eb7de03d46
parent f48f83b20d220a2de072446fed13c9df7edabe66
Author: Sergej Orlov <wladimirych@gmail.com>
Date:   Wed,  1 May 2019 11:12:43 +0200

layers: update url for Norway maps, remove code for getting token, change map name #220

Diffstat:
Msrc/layers.js | 15++++++++-------
Dsrc/lib/leaflet.layer.nordeskart/index.js | 86-------------------------------------------------------------------------------
2 files changed, 8 insertions(+), 93 deletions(-)

diff --git a/src/layers.js b/src/layers.js @@ -6,7 +6,6 @@ import {BingDates} from 'lib/leaflet.layer.bing/dates'; import config from './config'; import 'lib/leaflet.layer.soviet-topomaps-grid'; import 'lib/leaflet.layer.westraPasses'; -import 'lib/leaflet.layer.nordeskart'; import 'lib/leaflet.layer.wikimapia'; import {GeocachingSu} from 'lib/leaflet.layer.geocaching-su'; import {StravaHeatmap} from 'lib/leaflet.layer.strava-heatmap'; @@ -741,7 +740,7 @@ export default function getLayers() { { title: 'Norway paper map', isDefault: false, - layer: new L.TileLayer.Nordeskart('https://gatekeeper1.geonorge.no/BaatGatekeeper/gk/gk.cache_gmaps?layers=toporaster3&zoom={z}&x={x}&y={y}&gkt={baatToken}', + layer: new L.TileLayer('https://opencache.statkart.no/gatekeeper/gk/gk.open_gmaps?layers=toporaster3&zoom={z}&x={x}&y={y}', { code: 'Np', isOverlay: true, @@ -751,14 +750,15 @@ export default function getLayers() { print: true, jnx: true, scaleDependent: true, + noCors: false, shortName: 'norway_paper' } ) }, { - title: 'Norway map', + title: 'Norway topo', isDefault: false, - layer: new L.TileLayer.Nordeskart('https://gatekeeper1.geonorge.no/BaatGatekeeper/gk/gk.cache_gmaps?layers=topo4&zoom={z}&x={x}&y={y}&gkt={baatToken}', + layer: new L.TileLayer('https://opencache.statkart.no/gatekeeper/gk/gk.open_gmaps?layers=topo4&zoom={z}&x={x}&y={y}', { code: 'Nm', isOverlay: true, @@ -767,7 +767,8 @@ export default function getLayers() { print: true, jnx: true, scaleDependent: true, - shortName: 'norway' + noCors: false, + shortName: 'norway_topo' } ) }, @@ -1070,7 +1071,7 @@ export default function getLayers() { layers: [ 'Norway UT map', 'Norway paper map', - 'Norway map', + 'Norway topo', 'Norway summer trails', 'Norway winter trails', 'Norway roads'], @@ -1122,7 +1123,7 @@ export default function getLayers() { 'GGC 2 km', 'ArbaletMO', 'Norway paper map', - 'Norway map', + 'Norway topo', 'Mountains by Aleksey Tsvetkov', 'Slazav mountains', 'GGC 1km', diff --git a/src/lib/leaflet.layer.nordeskart/index.js b/src/lib/leaflet.layer.nordeskart/index.js @@ -1,86 +0,0 @@ -import L from 'leaflet'; -import {fetch} from 'lib/xhr-promise'; -import {notify} from 'lib/notifications'; -import logging from 'lib/logging'; -import safeLocalStorage from 'lib/safe-localstorage'; - -function parseResponse(s) { - let data; - data = JSON.parse(s); - if (!data.token) { - throw new Error('no token in response'); - } - return data.token; -} - -function getToken() { - return fetch('https://www.ut.no/kart/HentBaatToken/', {timeout: 10000}) - .then(function(xhr) { - try { - return {token: parseResponse(xhr.responseText)} - } catch (e) { - logging.captureException(e, {extra: { - description: 'Invalid baat token', - response: xhr.responseText.toString().slice(0, 100)}}); - return {error: 'Server returned invalid token for Norway map'} - } - }, - function(e) { - logging.captureException(e, {extra: {description: 'failed to download baat token'}}); - return {error: `Failed to token for Norway map: ${e.message}`}; - } - ); -} - -L.TileLayer.Nordeskart = L.TileLayer.extend({ - options: { - tokenUpdateInterval: 5 * 60 * 1000 - }, - - initialize: function(url, options) { - this.__url = url; - L.TileLayer.prototype.initialize.call(this, '', options); - }, - - baatTokenUpToDate: function() { - let nextUpdate = 0; - nextUpdate = parseInt(safeLocalStorage.getItem('baatTokenNextUpdate'), 10) || 0; - return Date.now() < nextUpdate && safeLocalStorage.getItem('baatToken'); - }, - - storeBaatToken: function(token) { - safeLocalStorage.setItem('baatToken', token); - safeLocalStorage.setItem('baatTokenNextUpdate', Date.now().toString() + this.options.tokenUpdateInterval); - }, - - periodicTokenUpdate: function() { - if (!this._map) { - return; - } - getToken().then((data) => { - if (data.error) { - notify(data.error); - } else { - if (data.token !== this.options.baatToken) { - this.options.baatToken = data.token; - if (!this._url) { - this.setUrl(this.__url); - } - } - this.storeBaatToken(data.token); - } - setTimeout(() => this.periodicTokenUpdate(), this.options.tokenUpdateInterval); - }); - }, - - onAdd: function(map) { - const token = this.baatTokenUpToDate(); - if (token) { - this.options.baatToken = token; - this.setUrl(this.__url); - } - this.periodicTokenUpdate(); - return L.TileLayer.prototype.onAdd.call(this, map); - } - } -);