-
Notifications
You must be signed in to change notification settings - Fork 109
/
Copy pathbasemap-kartverket.js
100 lines (87 loc) · 2.73 KB
/
basemap-kartverket.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
// @author johnd0e
// @name Kartverket.no maps (Norway)
// @category Map Tiles
// @version 0.3.1
// @description Add Kartverket.no map layers.
/* exported setup, changelog --eslint */
/* global L -- eslint */
var changelog = [
{
version: '0.3.1',
changes: ['Refactoring: fix eslint'],
},
{
version: '0.3.0',
changes: [
'Migrated to new WMTS server due to deprecation of Statkart opencache',
'Version upgrade due to a change in the wrapper: plugin icons are now vectorized',
],
},
{
version: '0.2.3',
changes: ['Version upgrade due to a change in the wrapper: added plugin icon'],
},
];
// use own namespace for plugin
var mapKartverket = {};
mapKartverket.setup = function () {
L.TileLayer.Kartverket = L.TileLayer.extend({
baseUrl: 'https://cache.kartverket.no/v1/wmts/1.0.0/' + '{layer}/default/webmercator/{z}/{y}/{x}.png',
options: {
maxNativeZoom: 18,
attribution: '© <a href="http://kartverket.no">Kartverket</a>',
},
mappings: {
bakgrunnskart_forenklet: 'topograatone',
egk: 'topo', // *1
europa: 'topo', // *1
havbunn_grunnkart: 'topo', // *1
kartdata2: 'topo',
matrikkel_bakgrunn: 'topo',
matrikkel_bakgrunn2: 'topo',
norges_grunnkart: 'topo',
norges_grunnkart_graatone: 'topograatone',
norgeskart_bakgrunn: 'topo',
sjo_hovedkart2: 'topo', // *1
sjokartraster: 'topo', // *1
terreng_norgeskart: 'topo',
toporaster3: 'toporaster',
topo2: 'topo',
topo4: 'topo',
topo2graatone: 'topograatone',
topo4graatone: 'topograatone',
// *1 = This layer is not provided on cache.kartverket.no.
},
layers: {
topo: 'Kartverket Topo (farger)',
topograatone: 'Kartverket Topo (gråtone)',
toporaster: 'Kartverket Topo (raster)',
},
initialize: function (layer, options) {
if (typeof this.layers[layer] === 'undefined') {
if (this.mappings[layer]) {
layer = this.mappings[layer];
} else {
throw new Error('Unknown layer "' + layer + '"');
}
}
L.TileLayer.prototype.initialize.call(this, this.baseUrl, options);
this.options.layer = layer;
this._name = this.layers[layer] || layer;
},
});
L.tileLayer.kartverket = function (layer, options) {
return new L.TileLayer.Kartverket(layer, options);
};
L.tileLayer.kartverket.getLayers = function () {
return L.extend({}, L.TileLayer.Kartverket.prototype.layers);
};
var l, layer;
for (layer in L.tileLayer.kartverket.getLayers()) {
l = L.tileLayer.kartverket(layer);
window.layerChooser.addBaseLayer(l, l._name);
}
};
function setup() {
mapKartverket.setup();
}