-
Notifications
You must be signed in to change notification settings - Fork 8
/
leaflet.tilelayer.wmts.src.js
57 lines (46 loc) · 1.38 KB
/
leaflet.tilelayer.wmts.src.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
(function () {
'use strict';
L.TileLayer.WMTS = L.TileLayer.extend({
defaultWmtsParams: {
service: "WMTS",
request: "GetTile",
version: "1.0.0",
layer: "",
style: "default",
tileMatrixSet: "",
format: "image/jpeg",
},
initialize: function (url, options) {
this._url = url;
const wmtsParams = L.extend({}, this.defaultWmtsParams);
// all keys that are not TileLayer options go to WMS params
for (const i in options) {
if (!(i in this.options)) {
wmtsParams[i] = options[i];
}
}
options = L.setOptions(this, options);
const realRetina = options.detectRetina && retina ? 2 : 1;
const tileSize = this.getTileSize();
wmtsParams.width = tileSize.x * realRetina;
wmtsParams.height = tileSize.y * realRetina;
this.wmtsParams = wmtsParams;
},
getTileUrl: function (coords) {
this.wmtsParams.tileMatrix = this._tileZoom.toString();
const url = L.Util.template(this._url, { s: this._getSubdomain(coords) });
const params = { ...this.wmtsParams, tileRow: coords.y, tileCol: coords.x };
return url + L.Util.getParamString(params);
},
setParams: function (params, noRedraw) {
L.extend(this.wmtsParams, params);
if (!noRedraw) {
this.redraw();
}
return this;
},
});
L.tileLayer.wmts = function (url, options) {
return new L.TileLayer.WMTS(url, options);
};
}());