@artstesh/maps 6.0.4 → 6.0.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +0 -2
- package/dist/esm2022/map/map-plate/layers/tile-layer/tile-layer.factory.mjs +19 -1
- package/dist/esm2022/map/map-plate/layers/tile-layer/tile-layer.settings.mjs +20 -1
- package/dist/esm2022/src/map/map-plate/layers/tile-layer/tile-layer.factory.mjs +19 -1
- package/dist/esm2022/src/map/map-plate/layers/tile-layer/tile-layer.settings.mjs +20 -1
- package/dist/fesm2022/maps-components-src-map.mjs +37 -0
- package/dist/fesm2022/maps-components-src-map.mjs.map +1 -1
- package/dist/fesm2022/maps-components.mjs +37 -0
- package/dist/fesm2022/maps-components.mjs.map +1 -1
- package/dist/map/map-plate/layers/tile-layer/tile-layer.factory.d.ts +1 -0
- package/dist/map/map-plate/layers/tile-layer/tile-layer.settings.d.ts +14 -0
- package/dist/src/map/map-plate/layers/tile-layer/tile-layer.factory.d.ts +1 -0
- package/dist/src/map/map-plate/layers/tile-layer/tile-layer.settings.d.ts +14 -0
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -6,8 +6,6 @@ Let's map a feature ;)
|
|
|
6
6
|
|
|
7
7
|
The main purpose of the project is to make easier the process of using of [openlayers library](https://openlayers.org/) in Angular projects.
|
|
8
8
|
|
|
9
|
-
It's just the first, initial version of the library, that gonna become much more functional in a few weeks.
|
|
10
|
-
|
|
11
9
|
### License
|
|
12
10
|
|
|
13
11
|
This project is licensed under the MIT License
|
|
@@ -12,6 +12,9 @@ export class TileLayerFactory {
|
|
|
12
12
|
projection: get(settings.projection),
|
|
13
13
|
tileUrlFunction: this.getTileFunc(settings),
|
|
14
14
|
crossOrigin: 'Anonymous',
|
|
15
|
+
tileLoadFunction: !!settings.requestHeaders
|
|
16
|
+
? (tile, src) => this.tileLoader(tile, src, settings.requestHeaders)
|
|
17
|
+
: undefined,
|
|
15
18
|
});
|
|
16
19
|
return new TileLayer({ source, opacity: settings.opacity });
|
|
17
20
|
}
|
|
@@ -28,6 +31,21 @@ export class TileLayerFactory {
|
|
|
28
31
|
.replace('{y}', String(bound - (normalizedCoord?.y || y) - 1));
|
|
29
32
|
};
|
|
30
33
|
}
|
|
34
|
+
tileLoader(tile, src, headers) {
|
|
35
|
+
const client = new XMLHttpRequest();
|
|
36
|
+
client.open('GET', src);
|
|
37
|
+
client.responseType = 'arraybuffer';
|
|
38
|
+
Object.keys(headers).forEach((k) => client.setRequestHeader(k, headers[k]));
|
|
39
|
+
client.onload = function () {
|
|
40
|
+
if (this.response !== undefined) {
|
|
41
|
+
const arrayBufferView = new Uint8Array(this.response);
|
|
42
|
+
const blob = new Blob([arrayBufferView], { type: 'image/png' });
|
|
43
|
+
const urlCreator = window.URL || window.webkitURL;
|
|
44
|
+
tile.getImage().src = urlCreator.createObjectURL(blob);
|
|
45
|
+
}
|
|
46
|
+
};
|
|
47
|
+
client.send();
|
|
48
|
+
}
|
|
31
49
|
getNormalizedCoord(coord, zoom) {
|
|
32
50
|
const y = coord.y;
|
|
33
51
|
let x = coord.x;
|
|
@@ -47,4 +65,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.7", ngImpor
|
|
|
47
65
|
providedIn: 'root',
|
|
48
66
|
}]
|
|
49
67
|
}] });
|
|
50
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
68
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGlsZS1sYXllci5mYWN0b3J5LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbWFwcy1jb21wb25lbnRzL3NyYy9tYXAvbWFwLXBsYXRlL2xheWVycy90aWxlLWxheWVyL3RpbGUtbGF5ZXIuZmFjdG9yeS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFBRSxHQUFHLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFHaEMsT0FBTyxFQUFFLEdBQUcsRUFBRSxNQUFNLFNBQVMsQ0FBQztBQUM5QixPQUFPLFNBQVMsTUFBTSxlQUFlLENBQUM7O0FBTXRDLE1BQU0sT0FBTyxnQkFBZ0I7SUFDcEIsS0FBSyxDQUFDLFFBQTJCO1FBQ3RDLE1BQU0sTUFBTSxHQUFHLElBQUksR0FBRyxDQUFDO1lBQ3JCLFFBQVEsRUFBRSxHQUFHO1lBQ2IsT0FBTyxFQUFFLFFBQVEsQ0FBQyxPQUFPLElBQUksRUFBRTtZQUMvQixPQUFPLEVBQUUsUUFBUSxDQUFDLE9BQU8sSUFBSSxDQUFDO1lBQzlCLFVBQVUsRUFBRSxHQUFHLENBQUMsUUFBUSxDQUFDLFVBQVUsQ0FBRTtZQUNyQyxlQUFlLEVBQUUsSUFBSSxDQUFDLFdBQVcsQ0FBQyxRQUFRLENBQUM7WUFDM0MsV0FBVyxFQUFFLFdBQVc7WUFDeEIsZ0JBQWdCLEVBQUUsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxjQUFjO2dCQUN6QyxDQUFDLENBQUMsQ0FBQyxJQUFJLEVBQUUsR0FBVyxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksRUFBRSxHQUFHLEVBQUUsUUFBUSxDQUFDLGNBQWUsQ0FBQztnQkFDN0UsQ0FBQyxDQUFDLFNBQVM7U0FDZCxDQUFDLENBQUM7UUFDSCxPQUFPLElBQUksU0FBUyxDQUFDLEVBQUUsTUFBTSxFQUFFLE9BQU8sRUFBRSxRQUFRLENBQUMs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SUFDeEIsQ0FBQzt1R0FyRFUsZ0JBQWdCOzJHQUFoQixnQkFBZ0IsY0FGZixNQUFNOzsyRkFFUCxnQkFBZ0I7a0JBSDVCLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgWFlaIH0gZnJvbSAnb2wvc291cmNlJztcbmltcG9ydCB7IFRpbGVMYXllclNldHRpbmdzIH0gZnJvbSAnLi90aWxlLWxheWVyLnNldHRpbmdzJztcbmltcG9ydCB7IFRpbGVDb29yZCB9IGZyb20gJ29sL3RpbGVjb29yZCc7XG5pbXBvcnQgeyBnZXQgfSBmcm9tICdvbC9wcm9qJztcbmltcG9ydCBUaWxlTGF5ZXIgZnJvbSAnb2wvbGF5ZXIvVGlsZSc7XG5pbXBvcnQgeyBUaWxlIH0gZnJvbSAnb2wnO1xuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290Jyxcbn0pXG5leHBvcnQgY2xhc3MgVGlsZUxheWVyRmFjdG9yeSB7XG4gIHB1YmxpYyBidWlsZChzZXR0aW5nczogVGlsZUxheWVyU2V0dGluZ3MpOiBUaWxlTGF5ZXI8WFlaPiB7XG4gICAgY29uc3Qgc291cmNlID0gbmV3IFhZWih7XG4gICAgICB0aWxlU2l6ZTogMjU2LFxuICAgICAgbWF4Wm9vbTogc2V0dGluZ3MubWF4Wm9vbSB8fCAxNCxcbiAgICAgIG1pblpvb206IHNldHRpbmdzLm1pblpvb20gfHwgMSxcbiAgICAgIHByb2plY3Rpb246IGdldChzZXR0aW5ncy5wcm9qZWN0aW9uKSEsXG4gICAgICB0aWxlVXJsRnVuY3Rpb246IHRoaXMuZ2V0VGlsZUZ1bmMoc2V0dGluZ3MpLFxuICAgICAgY3Jvc3NPcmlnaW46ICdBbm9ueW1vdXMnLFxuICAgICAgdGlsZUxvYWRGdW5jdGlvbjogISFzZXR0aW5ncy5yZXF1ZXN0SGVhZGVyc1xuICAgICAgICA/ICh0aWxlLCBzcmM6IHN0cmluZykgPT4gdGhpcy50aWxlTG9hZGVyKHRpbGUsIHNyYywgc2V0dGluZ3MucmVxdWVzdEhlYWRlcnMhKVxuICAgICAgICA6IHVuZGVmaW5lZCxcbiAgICB9KTtcbiAgICByZXR1cm4gbmV3IFRpbGVMYXllcih7IHNvdXJjZSwgb3BhY2l0eTogc2V0dGluZ3Mub3BhY2l0eSB9KTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0VGlsZUZ1bmMoc2V0dGluZ3M6IFRpbGVMYXllclNldHRpbmdzKTogKHRpbGVDb29yZDogVGlsZUNvb3JkKSA9PiBzdHJpbmcge1xuICAgIHJldHVybiAodGlsZUNvb3JkKSA9PiB7XG4gICAgICBjb25zdCB6b29tID0gdGlsZUNvb3JkWzBdO1xuICAgICAgY29uc3QgeCA9IHRpbGVDb29yZFsxXTtcbiAgICAgIGNvbnN0IHkgPSB0aWxlQ29vcmRbMl07XG4gICAgICBjb25zdCBub3JtYWxpemVkQ29vcmQgPSB0aGlzLmdldE5vcm1hbGl6ZWRDb29yZCh7IHg6IHgsIHk6IHkgfSwgem9vbSk7XG4gICAgICBjb25zdCBib3VuZCA9IDEgPDwgem9vbTtcbiAgICAgIHJldHVybiBzZXR0aW5ncy51cmxcbiAgICAgICAgLnJlcGxhY2UoJ3t4fScsIFN0cmluZyhub3JtYWxpemVkQ29vcmQ/LnggfHwgeCkpXG4gICAgICAgIC5yZXBsYWNlKCd7en0nLCBTdHJpbmcoem9vbSkpXG4gICAgICAgIC5yZXBsYWNlKCd7eX0nLCBTdHJpbmcoYm91bmQgLSAobm9ybWFsaXplZENvb3JkPy55IHx8IHkpIC0gMSkpO1xuICAgIH07XG4gIH1cblxuICBwcml2YXRlIHRpbGVMb2FkZXIodGlsZTogVGlsZSwgc3JjOiBzdHJpbmcsIGhlYWRlcnM6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4pIHtcbiAgICBjb25zdCBjbGllbnQgPSBuZXcgWE1MSHR0cFJlcXVlc3QoKTtcbiAgICBjbGllbnQub3BlbignR0VUJywgc3JjKTtcbiAgICBjbGllbnQucmVzcG9uc2VUeXBlID0gJ2FycmF5YnVmZmVyJztcbiAgICBPYmplY3Qua2V5cyhoZWFkZXJzKS5mb3JFYWNoKChrOiBzdHJpbmcpID0+IGNsaWVudC5zZXRSZXF1ZXN0SGVhZGVyKGssIGhlYWRlcnNba10pKTtcbiAgICBjbGllbnQub25sb2FkID0gZnVuY3Rpb24gKCkge1xuICAgICAgaWYgKHRoaXMucmVzcG9uc2UgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICBjb25zdCBhcnJheUJ1ZmZlclZpZXcgPSBuZXcgVWludDhBcnJheSh0aGlzLnJlc3BvbnNlKTtcbiAgICAgICAgY29uc3QgYmxvYiA9IG5ldyBCbG9iKFthcnJheUJ1ZmZlclZpZXddLCB7IHR5cGU6ICdpbWFnZS9wbmcnIH0pO1xuICAgICAgICBjb25zdCB1cmxDcmVhdG9yID0gd2luZG93LlVSTCB8fCAod2luZG93IGFzIGFueSkud2Via2l0VVJMO1xuICAgICAgICAodGlsZSBhcyBhbnkpLmdldEltYWdlKCkuc3JjID0gdXJsQ3JlYXRvci5jcmVhdGVPYmplY3RVUkwoYmxvYik7XG4gICAgICB9XG4gICAgfTtcbiAgICBjbGllbnQuc2VuZCgpO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXROb3JtYWxpemVkQ29vcmQoY29vcmQ6IHsgeDogbnVtYmVyOyB5OiBudW1iZXIgfSwgem9vbTogbnVtYmVyKSB7XG4gICAgY29uc3QgeSA9IGNvb3JkLnk7XG4gICAgbGV0IHggPSBjb29yZC54O1xuICAgIGNvbnN0IHRpbGVSYW5nZSA9IDEgPDwgem9vbTtcbiAgICBpZiAoeSA8IDAgfHwgeSA+PSB0aWxlUmFuZ2UpIHJldHVybiBudWxsO1xuICAgIGlmICh4IDwgMCB8fCB4ID49IHRpbGVSYW5nZSkgeCA9ICgoeCAlIHRpbGVSYW5nZSkgKyB0aWxlUmFuZ2UpICUgdGlsZVJhbmdlO1xuICAgIHJldHVybiB7IHg6IHgsIHk6IHkgfTtcbiAgfVxufVxuIl19
|
|
@@ -37,6 +37,13 @@ export class TileLayerSettings {
|
|
|
37
37
|
* @default 'EPSG:3857'
|
|
38
38
|
*/
|
|
39
39
|
projection = 'EPSG:3857';
|
|
40
|
+
/**
|
|
41
|
+
* Additional headers that should be added to each tile request
|
|
42
|
+
*
|
|
43
|
+
* @type {Record<string, string>}
|
|
44
|
+
* @default An empty array
|
|
45
|
+
*/
|
|
46
|
+
requestHeaders = null;
|
|
40
47
|
/**
|
|
41
48
|
* Creates a copy of the given tile layer settings.
|
|
42
49
|
*
|
|
@@ -50,6 +57,7 @@ export class TileLayerSettings {
|
|
|
50
57
|
result.projection = model.projection;
|
|
51
58
|
result.opacity = model.opacity;
|
|
52
59
|
result.url = model.url;
|
|
60
|
+
result.requestHeaders = model.requestHeaders;
|
|
53
61
|
return result;
|
|
54
62
|
}
|
|
55
63
|
/**
|
|
@@ -61,6 +69,15 @@ export class TileLayerSettings {
|
|
|
61
69
|
setUrl(url) {
|
|
62
70
|
return TileLayerSettings.copy({ ...this, url });
|
|
63
71
|
}
|
|
72
|
+
/**
|
|
73
|
+
* Sets the requestHeaders of the TileLayerSettings object.
|
|
74
|
+
*
|
|
75
|
+
* @param {Record<string, string>} requestHeaders - The headers which should be provided.
|
|
76
|
+
* @return {TileLayerSettings} - The updated TileLayerSettings object.
|
|
77
|
+
*/
|
|
78
|
+
setRequestHeaders(requestHeaders) {
|
|
79
|
+
return TileLayerSettings.copy({ ...this, requestHeaders });
|
|
80
|
+
}
|
|
64
81
|
/**
|
|
65
82
|
* Sets the maximum zoom level for the tile layer.
|
|
66
83
|
*
|
|
@@ -114,7 +131,9 @@ export class TileLayerSettings {
|
|
|
114
131
|
return false;
|
|
115
132
|
if (this.opacity !== model.opacity)
|
|
116
133
|
return false;
|
|
134
|
+
if (this.requestHeaders !== model.requestHeaders)
|
|
135
|
+
return false;
|
|
117
136
|
return true;
|
|
118
137
|
}
|
|
119
138
|
}
|
|
120
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
139
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGlsZS1sYXllci5zZXR0aW5ncy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL21hcHMtY29tcG9uZW50cy9zcmMvbWFwL21hcC1wbGF0ZS9sYXllcnMvdGlsZS1sYXllci90aWxlLWxheWVyLnNldHRpbmdzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBQ0gsTUFBTSxPQUFPLGlCQUFpQjtJQUM1Qjs7Ozs7T0FLRztJQUNILE9BQU8sR0FBVyxFQUFFLENBQUM7SUFDckI7Ozs7T0FJRztJQUNILE9BQU8sR0FBVyxDQUFDLENBQUM7SUFDcEI7Ozs7O09BS0c7SUFDSCxPQUFPLEdBQVcsR0FBRyxDQUFDO0lBQ3RCOzs7Ozs7T0FNRztJQUNILEdBQUcsR0FBVyxFQUFFLENBQUM7SUFDakI7Ozs7O09BS0c7SUFDSCxVQUFVLEdBQVcsV0FBVyxDQUFDO0lBQ2pDOzs7OztPQUtHO0lBQ0gsY0FBYyxHQUFrQyxJQUFJLENBQUM7SUFDckQ7Ozs7O09BS0c7SUFDSSxNQUFNLENBQUMsSUFBSSxDQUFDLEtBQXdCO1FBQ3pDLE1BQU0sTUFBTSxHQUFHLElBQUksaUJBQWlCLEVBQUUsQ0FBQztRQUN2QyxNQUFNLENBQUMsT0FBTyxHQUFHLEtBQUssQ0FBQyxPQUFPLENBQUM7UUFDL0IsTUFBTSxDQUFDLE9BQU8sR0FBRyxLQUFLLENBQUMsT0FBTyxDQUFDO1FBQy9CLE1BQU0sQ0FBQyxVQUFVLEdBQUcsS0FBSyxDQUFDLFVBQVUsQ0FBQztRQUNyQyxNQUFNLENBQUMsT0FBTyxHQUFHLEtBQUssQ0FBQyxPQUFPLENBQUM7UUFDL0IsTUFBTSxDQUFDLEdBQUcsR0FBRyxLQUFLLENBQUMsR0FBRyxDQUFDO1FBQ3ZCLE1BQU0sQ0FBQyxjQUFjLEdBQUcsS0FBSyxDQUFDLGNBQWMsQ0FBQztRQUM3QyxPQUFPLE1BQU0sQ0FBQztJQUNoQixDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSCxNQUFNLENBQUMsR0FBVztRQUNoQixPQUFPLGlCQUFpQixDQUFDLElBQUksQ0FBQyxFQUFFLEdBQUcsSUFBSSxFQUFFLEdBQUcsRUFBRSxDQUFDLENBQUM7SUFDbEQsQ0FBQztJQUVEOzs7OztPQUtHO0lBQ0gsaUJBQWlCLENBQUMsY0FBc0M7UUFDdEQsT0FBTyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsRUFBRSxHQUFHLElBQUksRUFBRSxjQUFjLEVBQUUsQ0FBQyxDQUFDO0lBQzdELENBQUM7SUFFRDs7Ozs7T0FLRztJQUNILFVBQVUsQ0FBQyxPQUFlO1FBQ3hCLE9BQU8saUJBQWlCLENBQUMsSUFBSSxDQUFDLEVBQUUsR0FBRyxJQUFJLEVBQUUsT0FBTyxFQUFFLENBQUMsQ0FBQztJQUN0RCxDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSCxVQUFVLENBQUMsT0FBZTtRQUN4QixPQUFPLGlCQUFpQixDQUFDLElBQUksQ0FBQyxFQUFFLEdBQUcsSUFBSSxFQUFFLE9BQU8sRUFBRSxDQUFDLENBQUM7SUFDdEQsQ0FBQztJQUVEOzs7OztPQUtHO0lBQ0gsVUFBVSxDQUFDLE9BQWU7UUFDeEIsT0FBTyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsRUFBRSxHQUFHLElBQUksRUFBRSxPQUFPLEVBQUUsQ0FBQyxDQUFDO0lBQ3RELENBQUM7SUFFRDs7Ozs7T0FLRztJQUNILGFBQWEsQ0FBQyxVQUFrQjtRQUM5QixPQUFPLGlCQUFpQixDQUFDLElBQUksQ0FBQyxFQUFFLEdBQUcsSUFBSSxFQUFFLFVBQVUsRUFBRSxDQUFDLENBQUM7SUFDekQsQ0FBQztJQUVEOzs7OztPQUtHO0lBQ0ksTUFBTSxDQUFDLEtBQXdCO1FBQ3BDLElBQUksSUFBSSxDQUFDLE9BQU8sS0FBSyxLQUFLLENBQUMsT0FBTztZQUFFLE9BQU8sS0FBSyxDQUFDO1FBQ2pELElBQUksSUFBSSxDQUFDLE9BQU8sS0FBSyxLQUFLLENBQUMsT0FBTztZQUFFLE9BQU8sS0FBSyxDQUFDO1FBQ2pELElBQUksSUFBSSxDQUFDLEdBQUcsS0FBSyxLQUFLLENBQUMsR0FBRztZQUFFLE9BQU8sS0FBSyxDQUFDO1FBQ3pDLElBQUksSUFBSSxDQUFDLFVBQVUsS0FBSyxLQUFLLENBQUMsVUFBVTtZQUFFLE9BQU8sS0FBSyxDQUFDO1FBQ3ZELElBQUksSUFBSSxDQUFDLE9BQU8sS0FBSyxLQUFLLENBQUMsT0FBTztZQUFFLE9BQU8sS0FBSyxDQUFDO1FBQ2pELElBQUksSUFBSSxDQUFDLGNBQWMsS0FBSyxLQUFLLENBQUMsY0FBYztZQUFFLE9BQU8sS0FBSyxDQUFDO1FBQy9ELE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBDbGFzcyByZXByZXNlbnRpbmcgc2V0dGluZ3MgZm9yIGEgdGlsZSBsYXllci5cbiAqL1xuZXhwb3J0IGNsYXNzIFRpbGVMYXllclNldHRpbmdzIHtcbiAgLyoqXG4gICAqIFRoZSBtYXhpbXVtIHpvb20gbGV2ZWwgZm9yIGEgbWFwIHZpZXcuXG4gICAqXG4gICAqIEB0eXBlIHtudW1iZXJ9XG4gICAqIEBkZWZhdWx0IDE5XG4gICAqL1xuICBtYXhab29tOiBudW1iZXIgPSAxOTtcbiAgLyoqXG4gICAqIFRoZSBtaW5pbXVtIHpvb20gbGV2ZWwgYWxsb3dlZC5cbiAgICpcbiAgICogQHR5cGUge251bWJlcn1cbiAgICovXG4gIG1pblpvb206IG51bWJlciA9IDA7XG4gIC8qKlxuICAgKiBUaGUgb3BhY2l0eSBvZiBhbiBlbGVtZW50LlxuICAgKlxuICAgKiBAdHlwZSB7bnVtYmVyfVxuICAgKiBAZGVmYXVsdCAwLjZcbiAgICovXG4gIG9wYWNpdHk6IG51bWJlciA9IDAuNjtcbiAgLyoqXG4gICAqIFJlcHJlc2VudHMgdGhlIHRpbGVzIFVSTC5cbiAgICogQHR5cGVkZWYge3N0cmluZ30gdXJsXG4gICAqXG4gICAqIEBleGFtcGxlXG4gICAqICdodHRwczovL2V4YW1wbGUuZXgve3p9L3t4fS97eX0ucG5nJ1xuICAgKi9cbiAgdXJsOiBzdHJpbmcgPSAnJztcbiAgLyoqXG4gICAqIFRoZSBwcm9qZWN0aW9uIG9mIHRoZSBjb29yZGluYXRlIHN5c3RlbS5cbiAgICpcbiAgICogQHR5cGUge3N0cmluZ31cbiAgICogQGRlZmF1bHQgJ0VQU0c6Mzg1NydcbiAgICovXG4gIHByb2plY3Rpb246IHN0cmluZyA9ICdFUFNHOjM4NTcnO1xuICAvKipcbiAgICogQWRkaXRpb25hbCBoZWFkZXJzIHRoYXQgc2hvdWxkIGJlIGFkZGVkIHRvIGVhY2ggdGlsZSByZXF1ZXN0XG4gICAqXG4gICAqIEB0eXBlIHtSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+fVxuICAgKiBAZGVmYXVsdCBBbiBlbXB0eSBhcnJheVxuICAgKi9cbiAgcmVxdWVzdEhlYWRlcnM6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4gfCBudWxsID0gbnVsbDtcbiAgLyoqXG4gICAqIENyZWF0ZXMgYSBjb3B5IG9mIHRoZSBnaXZlbiB0aWxlIGxheWVyIHNldHRpbmdzLlxuICAgKlxuICAgKiBAcGFyYW0ge1RpbGVMYXllclNldHRpbmdzfSBtb2RlbCAtIFRoZSB0aWxlIGxheWVyIHNldHRpbmdzIHRvIGJlIGNvcGllZC5cbiAgICogQHJldHVybiB7VGlsZUxheWVyU2V0dGluZ3N9IC0gQSBuZXcgaW5zdGFuY2Ugb2YgVGlsZUxheWVyU2V0dGluZ3Mgd2l0aCB0aGUgc2FtZSBwcm9wZXJ0aWVzIGFzIHRoZSBtb2RlbC5cbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgY29weShtb2RlbDogVGlsZUxheWVyU2V0dGluZ3MpOiBUaWxlTGF5ZXJTZXR0aW5ncyB7XG4gICAgY29uc3QgcmVzdWx0ID0gbmV3IFRpbGVMYXllclNldHRpbmdzKCk7XG4gICAgcmVzdWx0Lm1heFpvb20gPSBtb2RlbC5tYXhab29tO1xuICAgIHJlc3VsdC5taW5ab29tID0gbW9kZWwubWluWm9vbTtcbiAgICByZXN1bHQucHJvamVjdGlvbiA9IG1vZGVsLnByb2plY3Rpb247XG4gICAgcmVzdWx0Lm9wYWNpdHkgPSBtb2RlbC5vcGFjaXR5O1xuICAgIHJlc3VsdC51cmwgPSBtb2RlbC51cmw7XG4gICAgcmVzdWx0LnJlcXVlc3RIZWFkZXJzID0gbW9kZWwucmVxdWVzdEhlYWRlcnM7XG4gICAgcmV0dXJuIHJlc3VsdDtcbiAgfVxuXG4gIC8qKlxuICAgKiBTZXRzIHRoZSBVUkwgb2YgdGhlIFRpbGVMYXllclNldHRpbmdzIG9iamVjdC5cbiAgICpcbiAgICogQHBhcmFtIHtzdHJpbmd9IHVybCAtIFRoZSBVUkwgdG8gYmUgc2V0LlxuICAgKiBAcmV0dXJuIHtUaWxlTGF5ZXJTZXR0aW5nc30gLSBUaGUgdXBkYXRlZCBUaWxlTGF5ZXJTZXR0aW5ncyBvYmplY3QuXG4gICAqL1xuICBzZXRVcmwodXJsOiBzdHJpbmcpOiBUaWxlTGF5ZXJTZXR0aW5ncyB7XG4gICAgcmV0dXJuIFRpbGVMYXllclNldHRpbmdzLmNvcHkoeyAuLi50aGlzLCB1cmwgfSk7XG4gIH1cblxuICAvKipcbiAgICogU2V0cyB0aGUgcmVxdWVzdEhlYWRlcnMgb2YgdGhlIFRpbGVMYXllclNldHRpbmdzIG9iamVjdC5cbiAgICpcbiAgICogQHBhcmFtIHtSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+fSByZXF1ZXN0SGVhZGVycyAtIFRoZSBoZWFkZXJzIHdoaWNoIHNob3VsZCBiZSBwcm92aWRlZC5cbiAgICogQHJldHVybiB7VGlsZUxheWVyU2V0dGluZ3N9IC0gVGhlIHVwZGF0ZWQgVGlsZUxheWVyU2V0dGluZ3Mgb2JqZWN0LlxuICAgKi9cbiAgc2V0UmVxdWVzdEhlYWRlcnMocmVxdWVzdEhlYWRlcnM6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4pOiBUaWxlTGF5ZXJTZXR0aW5ncyB7XG4gICAgcmV0dXJuIFRpbGVMYXllclNldHRpbmdzLmNvcHkoeyAuLi50aGlzLCByZXF1ZXN0SGVhZGVycyB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTZXRzIHRoZSBtYXhpbXVtIHpvb20gbGV2ZWwgZm9yIHRoZSB0aWxlIGxheWVyLlxuICAgKlxuICAgKiBAcGFyYW0ge251bWJlcn0gbWF4Wm9vbSAtIFRoZSBtYXhpbXVtIHpvb20gbGV2ZWwuXG4gICAqIEByZXR1cm5zIHtUaWxlTGF5ZXJTZXR0aW5nc30gLSBUaGUgdXBkYXRlZCB0aWxlIGxheWVyIHNldHRpbmdzIG9iamVjdC5cbiAgICovXG4gIHNldE1heFpvb20obWF4Wm9vbTogbnVtYmVyKTogVGlsZUxheWVyU2V0dGluZ3Mge1xuICAgIHJldHVybiBUaWxlTGF5ZXJTZXR0aW5ncy5jb3B5KHsgLi4udGhpcywgbWF4Wm9vbSB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTZXRzIHRoZSBtaW5pbXVtIHpvb20gbGV2ZWwgZm9yIHRoZSBUaWxlIExheWVyLlxuICAgKlxuICAgKiBAcGFyYW0ge251bWJlcn0gbWluWm9vbSAtIFRoZSBtaW5pbXVtIHpvb20gbGV2ZWwgdG8gYmUgc2V0LlxuICAgKiBAcmV0dXJuIHtUaWxlTGF5ZXJTZXR0aW5nc30gVGhlIG1vZGlmaWVkIFRpbGVMYXllclNldHRpbmdzIG9iamVjdCB3aXRoIHRoZSB1cGRhdGVkIG1pbmltdW0gem9vbSBsZXZlbC5cbiAgICovXG4gIHNldE1pblpvb20obWluWm9vbTogbnVtYmVyKTogVGlsZUxheWVyU2V0dGluZ3Mge1xuICAgIHJldHVybiBUaWxlTGF5ZXJTZXR0aW5ncy5jb3B5KHsgLi4udGhpcywgbWluWm9vbSB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTZXRzIHRoZSBvcGFjaXR5IG9mIHRoZSBUaWxlTGF5ZXJTZXR0aW5ncy5cbiAgICpcbiAgICogQHBhcmFtIHtudW1iZXJ9IG9wYWNpdHkgLSBUaGUgb3BhY2l0eSB2YWx1ZSB0byBzZXQuIE11c3QgYmUgYSBudW1iZXIgYmV0d2VlbiAwIGFuZCAxLlxuICAgKiBAcmV0dXJuIHtUaWxlTGF5ZXJTZXR0aW5nc30gLSBBIG5ldyBpbnN0YW5jZSBvZiBUaWxlTGF5ZXJTZXR0aW5ncyB3aXRoIHRoZSBvcGFjaXR5IHNldC5cbiAgICovXG4gIHNldE9wYWNpdHkob3BhY2l0eTogbnVtYmVyKTogVGlsZUxheWVyU2V0dGluZ3Mge1xuICAgIHJldHVybiBUaWxlTGF5ZXJTZXR0aW5ncy5jb3B5KHsgLi4udGhpcywgb3BhY2l0eSB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTZXRzIHRoZSBwcm9qZWN0aW9uIGZvciB0aGUgdGlsZSBsYXllciBzZXR0aW5ncy5cbiAgICpcbiAgICogQHBhcmFtIHtzdHJpbmd9IHByb2plY3Rpb24gLSBUaGUgZGVzaXJlZCBwcm9qZWN0aW9uIGZvciB0aGUgdGlsZSBsYXllciBzZXR0aW5ncy5cbiAgICogQHJldHVybiB7VGlsZUxheWVyU2V0dGluZ3N9IC0gVGhlIHVwZGF0ZWQgdGlsZSBsYXllciBzZXR0aW5ncyB3aXRoIHRoZSBuZXcgcHJvamVjdGlvbi5cbiAgICovXG4gIHNldFByb2plY3Rpb24ocHJvamVjdGlvbjogc3RyaW5nKTogVGlsZUxheWVyU2V0dGluZ3Mge1xuICAgIHJldHVybiBUaWxlTGF5ZXJTZXR0aW5ncy5jb3B5KHsgLi4udGhpcywgcHJvamVjdGlvbiB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDaGVja3MgaWYgdGhlIGN1cnJlbnQgaW5zdGFuY2Ugb2YgVGlsZUxheWVyU2V0dGluZ3MgaXMgZXF1YWwgdG8gdGhlIGdpdmVuIG1vZGVsLlxuICAgKiBAcGFyYW0ge1RpbGVMYXllclNldHRpbmdzfSBtb2RlbCAtIFRoZSBtb2RlbCB0byBjb21wYXJlIGFnYWluc3QuXG4gICAqIEByZXR1cm4ge2Jvb2xlYW59IC0gVHJ1ZSBpZiBhbGwgcHJvcGVydGllcyBvZiB0aGUgY3VycmVudCBpbnN0YW5jZSBtYXRjaGVzIHRoZSBwcm9wZXJ0aWVzIG9mIHRoZSBtb2RlbDtcbiAgICogICAgICAgICAgICAgICAgICAgIG90aGVyd2lzZSwgZmFsc2UuXG4gICAqL1xuICBwdWJsaWMgaXNTYW1lKG1vZGVsOiBUaWxlTGF5ZXJTZXR0aW5ncyk6IGJvb2xlYW4ge1xuICAgIGlmICh0aGlzLm1heFpvb20gIT09IG1vZGVsLm1heFpvb20pIHJldHVybiBmYWxzZTtcbiAgICBpZiAodGhpcy5taW5ab29tICE9PSBtb2RlbC5taW5ab29tKSByZXR1cm4gZmFsc2U7XG4gICAgaWYgKHRoaXMudXJsICE9PSBtb2RlbC51cmwpIHJldHVybiBmYWxzZTtcbiAgICBpZiAodGhpcy5wcm9qZWN0aW9uICE9PSBtb2RlbC5wcm9qZWN0aW9uKSByZXR1cm4gZmFsc2U7XG4gICAgaWYgKHRoaXMub3BhY2l0eSAhPT0gbW9kZWwub3BhY2l0eSkgcmV0dXJuIGZhbHNlO1xuICAgIGlmICh0aGlzLnJlcXVlc3RIZWFkZXJzICE9PSBtb2RlbC5yZXF1ZXN0SGVhZGVycykgcmV0dXJuIGZhbHNlO1xuICAgIHJldHVybiB0cnVlO1xuICB9XG59XG4iXX0=
|
|
@@ -12,6 +12,9 @@ export class TileLayerFactory {
|
|
|
12
12
|
projection: get(settings.projection),
|
|
13
13
|
tileUrlFunction: this.getTileFunc(settings),
|
|
14
14
|
crossOrigin: 'Anonymous',
|
|
15
|
+
tileLoadFunction: !!settings.requestHeaders
|
|
16
|
+
? (tile, src) => this.tileLoader(tile, src, settings.requestHeaders)
|
|
17
|
+
: undefined,
|
|
15
18
|
});
|
|
16
19
|
return new TileLayer({ source, opacity: settings.opacity });
|
|
17
20
|
}
|
|
@@ -28,6 +31,21 @@ export class TileLayerFactory {
|
|
|
28
31
|
.replace('{y}', String(bound - (normalizedCoord?.y || y) - 1));
|
|
29
32
|
};
|
|
30
33
|
}
|
|
34
|
+
tileLoader(tile, src, headers) {
|
|
35
|
+
const client = new XMLHttpRequest();
|
|
36
|
+
client.open('GET', src);
|
|
37
|
+
client.responseType = 'arraybuffer';
|
|
38
|
+
Object.keys(headers).forEach((k) => client.setRequestHeader(k, headers[k]));
|
|
39
|
+
client.onload = function () {
|
|
40
|
+
if (this.response !== undefined) {
|
|
41
|
+
const arrayBufferView = new Uint8Array(this.response);
|
|
42
|
+
const blob = new Blob([arrayBufferView], { type: 'image/png' });
|
|
43
|
+
const urlCreator = window.URL || window.webkitURL;
|
|
44
|
+
tile.getImage().src = urlCreator.createObjectURL(blob);
|
|
45
|
+
}
|
|
46
|
+
};
|
|
47
|
+
client.send();
|
|
48
|
+
}
|
|
31
49
|
getNormalizedCoord(coord, zoom) {
|
|
32
50
|
const y = coord.y;
|
|
33
51
|
let x = coord.x;
|
|
@@ -47,4 +65,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.7", ngImpor
|
|
|
47
65
|
providedIn: 'root',
|
|
48
66
|
}]
|
|
49
67
|
}] });
|
|
50
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
68
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGlsZS1sYXllci5mYWN0b3J5LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbWFwcy1jb21wb25lbnRzL3NyYy9tYXAvbWFwLXBsYXRlL2xheWVycy90aWxlLWxheWVyL3RpbGUtbGF5ZXIuZmFjdG9yeS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFBRSxHQUFHLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFHaEMsT0FBTyxFQUFFLEdBQUcsRUFBRSxNQUFNLFNBQVMsQ0FBQztBQUM5QixPQUFPLFNBQVMsTUFBTSxlQUFlLENBQUM7O0FBTXRDLE1BQU0sT0FBTyxnQkFBZ0I7SUFDcEIsS0FBSyxDQUFDLFFBQTJCO1FBQ3RDLE1BQU0sTUFBTSxHQUFHLElBQUksR0FBRyxDQUFDO1lBQ3JCLFFBQVEsRUFBRSxHQUFHO1lBQ2IsT0FBTyxFQUFFLFFBQVEsQ0FBQyxPQUFPLElBQUksRUFBRTtZQUMvQixPQUFPLEVBQUUsUUFBUSxDQUFDLE9BQU8sSUFBSSxDQUFDO1lBQzlCLFVBQVUsRUFBRSxHQUFHLENBQUMsUUFBUSxDQUFDLFVBQVUsQ0FBRTtZQUNyQyxlQUFlLEVBQUUsSUFBSSxDQUFDLFdBQVcsQ0FBQyxRQUFRLENBQUM7WUFDM0MsV0FBVyxFQUFFLFdBQVc7WUFDeEIsZ0JBQWdCLEVBQUUsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxjQUFjO2dCQUN6QyxDQUFDLENBQUMsQ0FBQyxJQUFJLEVBQUUsR0FBVyxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksRUFBRSxHQUFHLEVBQUUsUUFBUSxDQUFDLGNBQWUsQ0FBQztnQkFDN0UsQ0FBQyxDQUFDLFNBQVM7U0FDZCxDQUFDLENBQUM7UUFDSCxPQUFPLElBQUksU0FBUyxDQUFDLEVBQUUsTUFBTSxFQUFFLE9BQU8sRUFBRSxRQUFRLENB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QUM7SUFDeEIsQ0FBQzt1R0FyRFUsZ0JBQWdCOzJHQUFoQixnQkFBZ0IsY0FGZixNQUFNOzsyRkFFUCxnQkFBZ0I7a0JBSDVCLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgWFlaIH0gZnJvbSAnb2wvc291cmNlJztcbmltcG9ydCB7IFRpbGVMYXllclNldHRpbmdzIH0gZnJvbSAnLi90aWxlLWxheWVyLnNldHRpbmdzJztcbmltcG9ydCB7IFRpbGVDb29yZCB9IGZyb20gJ29sL3RpbGVjb29yZCc7XG5pbXBvcnQgeyBnZXQgfSBmcm9tICdvbC9wcm9qJztcbmltcG9ydCBUaWxlTGF5ZXIgZnJvbSAnb2wvbGF5ZXIvVGlsZSc7XG5pbXBvcnQgeyBUaWxlIH0gZnJvbSAnb2wnO1xuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290Jyxcbn0pXG5leHBvcnQgY2xhc3MgVGlsZUxheWVyRmFjdG9yeSB7XG4gIHB1YmxpYyBidWlsZChzZXR0aW5nczogVGlsZUxheWVyU2V0dGluZ3MpOiBUaWxlTGF5ZXI8WFlaPiB7XG4gICAgY29uc3Qgc291cmNlID0gbmV3IFhZWih7XG4gICAgICB0aWxlU2l6ZTogMjU2LFxuICAgICAgbWF4Wm9vbTogc2V0dGluZ3MubWF4Wm9vbSB8fCAxNCxcbiAgICAgIG1pblpvb206IHNldHRpbmdzLm1pblpvb20gfHwgMSxcbiAgICAgIHByb2plY3Rpb246IGdldChzZXR0aW5ncy5wcm9qZWN0aW9uKSEsXG4gICAgICB0aWxlVXJsRnVuY3Rpb246IHRoaXMuZ2V0VGlsZUZ1bmMoc2V0dGluZ3MpLFxuICAgICAgY3Jvc3NPcmlnaW46ICdBbm9ueW1vdXMnLFxuICAgICAgdGlsZUxvYWRGdW5jdGlvbjogISFzZXR0aW5ncy5yZXF1ZXN0SGVhZGVyc1xuICAgICAgICA/ICh0aWxlLCBzcmM6IHN0cmluZykgPT4gdGhpcy50aWxlTG9hZGVyKHRpbGUsIHNyYywgc2V0dGluZ3MucmVxdWVzdEhlYWRlcnMhKVxuICAgICAgICA6IHVuZGVmaW5lZCxcbiAgICB9KTtcbiAgICByZXR1cm4gbmV3IFRpbGVMYXllcih7IHNvdXJjZSwgb3BhY2l0eTogc2V0dGluZ3Mub3BhY2l0eSB9KTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0VGlsZUZ1bmMoc2V0dGluZ3M6IFRpbGVMYXllclNldHRpbmdzKTogKHRpbGVDb29yZDogVGlsZUNvb3JkKSA9PiBzdHJpbmcge1xuICAgIHJldHVybiAodGlsZUNvb3JkKSA9PiB7XG4gICAgICBjb25zdCB6b29tID0gdGlsZUNvb3JkWzBdO1xuICAgICAgY29uc3QgeCA9IHRpbGVDb29yZFsxXTtcbiAgICAgIGNvbnN0IHkgPSB0aWxlQ29vcmRbMl07XG4gICAgICBjb25zdCBub3JtYWxpemVkQ29vcmQgPSB0aGlzLmdldE5vcm1hbGl6ZWRDb29yZCh7IHg6IHgsIHk6IHkgfSwgem9vbSk7XG4gICAgICBjb25zdCBib3VuZCA9IDEgPDwgem9vbTtcbiAgICAgIHJldHVybiBzZXR0aW5ncy51cmxcbiAgICAgICAgLnJlcGxhY2UoJ3t4fScsIFN0cmluZyhub3JtYWxpemVkQ29vcmQ/LnggfHwgeCkpXG4gICAgICAgIC5yZXBsYWNlKCd7en0nLCBTdHJpbmcoem9vbSkpXG4gICAgICAgIC5yZXBsYWNlKCd7eX0nLCBTdHJpbmcoYm91bmQgLSAobm9ybWFsaXplZENvb3JkPy55IHx8IHkpIC0gMSkpO1xuICAgIH07XG4gIH1cblxuICBwcml2YXRlIHRpbGVMb2FkZXIodGlsZTogVGlsZSwgc3JjOiBzdHJpbmcsIGhlYWRlcnM6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4pIHtcbiAgICBjb25zdCBjbGllbnQgPSBuZXcgWE1MSHR0cFJlcXVlc3QoKTtcbiAgICBjbGllbnQub3BlbignR0VUJywgc3JjKTtcbiAgICBjbGllbnQucmVzcG9uc2VUeXBlID0gJ2FycmF5YnVmZmVyJztcbiAgICBPYmplY3Qua2V5cyhoZWFkZXJzKS5mb3JFYWNoKChrOiBzdHJpbmcpID0+IGNsaWVudC5zZXRSZXF1ZXN0SGVhZGVyKGssIGhlYWRlcnNba10pKTtcbiAgICBjbGllbnQub25sb2FkID0gZnVuY3Rpb24gKCkge1xuICAgICAgaWYgKHRoaXMucmVzcG9uc2UgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICBjb25zdCBhcnJheUJ1ZmZlclZpZXcgPSBuZXcgVWludDhBcnJheSh0aGlzLnJlc3BvbnNlKTtcbiAgICAgICAgY29uc3QgYmxvYiA9IG5ldyBCbG9iKFthcnJheUJ1ZmZlclZpZXddLCB7IHR5cGU6ICdpbWFnZS9wbmcnIH0pO1xuICAgICAgICBjb25zdCB1cmxDcmVhdG9yID0gd2luZG93LlVSTCB8fCAod2luZG93IGFzIGFueSkud2Via2l0VVJMO1xuICAgICAgICAodGlsZSBhcyBhbnkpLmdldEltYWdlKCkuc3JjID0gdXJsQ3JlYXRvci5jcmVhdGVPYmplY3RVUkwoYmxvYik7XG4gICAgICB9XG4gICAgfTtcbiAgICBjbGllbnQuc2VuZCgpO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXROb3JtYWxpemVkQ29vcmQoY29vcmQ6IHsgeDogbnVtYmVyOyB5OiBudW1iZXIgfSwgem9vbTogbnVtYmVyKSB7XG4gICAgY29uc3QgeSA9IGNvb3JkLnk7XG4gICAgbGV0IHggPSBjb29yZC54O1xuICAgIGNvbnN0IHRpbGVSYW5nZSA9IDEgPDwgem9vbTtcbiAgICBpZiAoeSA8IDAgfHwgeSA+PSB0aWxlUmFuZ2UpIHJldHVybiBudWxsO1xuICAgIGlmICh4IDwgMCB8fCB4ID49IHRpbGVSYW5nZSkgeCA9ICgoeCAlIHRpbGVSYW5nZSkgKyB0aWxlUmFuZ2UpICUgdGlsZVJhbmdlO1xuICAgIHJldHVybiB7IHg6IHgsIHk6IHkgfTtcbiAgfVxufVxuIl19
|
|
@@ -37,6 +37,13 @@ export class TileLayerSettings {
|
|
|
37
37
|
* @default 'EPSG:3857'
|
|
38
38
|
*/
|
|
39
39
|
projection = 'EPSG:3857';
|
|
40
|
+
/**
|
|
41
|
+
* Additional headers that should be added to each tile request
|
|
42
|
+
*
|
|
43
|
+
* @type {Record<string, string>}
|
|
44
|
+
* @default An empty array
|
|
45
|
+
*/
|
|
46
|
+
requestHeaders = null;
|
|
40
47
|
/**
|
|
41
48
|
* Creates a copy of the given tile layer settings.
|
|
42
49
|
*
|
|
@@ -50,6 +57,7 @@ export class TileLayerSettings {
|
|
|
50
57
|
result.projection = model.projection;
|
|
51
58
|
result.opacity = model.opacity;
|
|
52
59
|
result.url = model.url;
|
|
60
|
+
result.requestHeaders = model.requestHeaders;
|
|
53
61
|
return result;
|
|
54
62
|
}
|
|
55
63
|
/**
|
|
@@ -61,6 +69,15 @@ export class TileLayerSettings {
|
|
|
61
69
|
setUrl(url) {
|
|
62
70
|
return TileLayerSettings.copy({ ...this, url });
|
|
63
71
|
}
|
|
72
|
+
/**
|
|
73
|
+
* Sets the requestHeaders of the TileLayerSettings object.
|
|
74
|
+
*
|
|
75
|
+
* @param {Record<string, string>} requestHeaders - The headers which should be provided.
|
|
76
|
+
* @return {TileLayerSettings} - The updated TileLayerSettings object.
|
|
77
|
+
*/
|
|
78
|
+
setRequestHeaders(requestHeaders) {
|
|
79
|
+
return TileLayerSettings.copy({ ...this, requestHeaders });
|
|
80
|
+
}
|
|
64
81
|
/**
|
|
65
82
|
* Sets the maximum zoom level for the tile layer.
|
|
66
83
|
*
|
|
@@ -114,7 +131,9 @@ export class TileLayerSettings {
|
|
|
114
131
|
return false;
|
|
115
132
|
if (this.opacity !== model.opacity)
|
|
116
133
|
return false;
|
|
134
|
+
if (this.requestHeaders !== model.requestHeaders)
|
|
135
|
+
return false;
|
|
117
136
|
return true;
|
|
118
137
|
}
|
|
119
138
|
}
|
|
120
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
139
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGlsZS1sYXllci5zZXR0aW5ncy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL21hcHMtY29tcG9uZW50cy9zcmMvbWFwL21hcC1wbGF0ZS9sYXllcnMvdGlsZS1sYXllci90aWxlLWxheWVyLnNldHRpbmdzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBQ0gsTUFBTSxPQUFPLGlCQUFpQjtJQUM1Qjs7Ozs7T0FLRztJQUNILE9BQU8sR0FBVyxFQUFFLENBQUM7SUFDckI7Ozs7T0FJRztJQUNILE9BQU8sR0FBVyxDQUFDLENBQUM7SUFDcEI7Ozs7O09BS0c7SUFDSCxPQUFPLEdBQVcsR0FBRyxDQUFDO0lBQ3RCOzs7Ozs7T0FNRztJQUNILEdBQUcsR0FBVyxFQUFFLENBQUM7SUFDakI7Ozs7O09BS0c7SUFDSCxVQUFVLEdBQVcsV0FBVyxDQUFDO0lBQ2pDOzs7OztPQUtHO0lBQ0gsY0FBYyxHQUFrQyxJQUFJLENBQUM7SUFDckQ7Ozs7O09BS0c7SUFDSSxNQUFNLENBQUMsSUFBSSxDQUFDLEtBQXdCO1FBQ3pDLE1BQU0sTUFBTSxHQUFHLElBQUksaUJBQWlCLEVBQUUsQ0FBQztRQUN2QyxNQUFNLENBQUMsT0FBTyxHQUFHLEtBQUssQ0FBQyxPQUFPLENBQUM7UUFDL0IsTUFBTSxDQUFDLE9BQU8sR0FBRyxLQUFLLENBQUMsT0FBTyxDQUFDO1FBQy9CLE1BQU0sQ0FBQyxVQUFVLEdBQUcsS0FBSyxDQUFDLFVBQVUsQ0FBQztRQUNyQyxNQUFNLENBQUMsT0FBTyxHQUFHLEtBQUssQ0FBQyxPQUFPLENBQUM7UUFDL0IsTUFBTSxDQUFDLEdBQUcsR0FBRyxLQUFLLENBQUMsR0FBRyxDQUFDO1FBQ3ZCLE1BQU0sQ0FBQyxjQUFjLEdBQUcsS0FBSyxDQUFDLGNBQWMsQ0FBQztRQUM3QyxPQUFPLE1BQU0sQ0FBQztJQUNoQixDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSCxNQUFNLENBQUMsR0FBVztRQUNoQixPQUFPLGlCQUFpQixDQUFDLElBQUksQ0FBQyxFQUFFLEdBQUcsSUFBSSxFQUFFLEdBQUcsRUFBRSxDQUFDLENBQUM7SUFDbEQsQ0FBQztJQUVEOzs7OztPQUtHO0lBQ0gsaUJBQWlCLENBQUMsY0FBc0M7UUFDdEQsT0FBTyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsRUFBRSxHQUFHLElBQUksRUFBRSxjQUFjLEVBQUUsQ0FBQyxDQUFDO0lBQzdELENBQUM7SUFFRDs7Ozs7T0FLRztJQUNILFVBQVUsQ0FBQyxPQUFlO1FBQ3hCLE9BQU8saUJBQWlCLENBQUMsSUFBSSxDQUFDLEVBQUUsR0FBRyxJQUFJLEVBQUUsT0FBTyxFQUFFLENBQUMsQ0FBQztJQUN0RCxDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSCxVQUFVLENBQUMsT0FBZTtRQUN4QixPQUFPLGlCQUFpQixDQUFDLElBQUksQ0FBQyxFQUFFLEdBQUcsSUFBSSxFQUFFLE9BQU8sRUFBRSxDQUFDLENBQUM7SUFDdEQsQ0FBQztJQUVEOzs7OztPQUtHO0lBQ0gsVUFBVSxDQUFDLE9BQWU7UUFDeEIsT0FBTyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsRUFBRSxHQUFHLElBQUksRUFBRSxPQUFPLEVBQUUsQ0FBQyxDQUFDO0lBQ3RELENBQUM7SUFFRDs7Ozs7T0FLRztJQUNILGFBQWEsQ0FBQyxVQUFrQjtRQUM5QixPQUFPLGlCQUFpQixDQUFDLElBQUksQ0FBQyxFQUFFLEdBQUcsSUFBSSxFQUFFLFVBQVUsRUFBRSxDQUFDLENBQUM7SUFDekQsQ0FBQztJQUVEOzs7OztPQUtHO0lBQ0ksTUFBTSxDQUFDLEtBQXdCO1FBQ3BDLElBQUksSUFBSSxDQUFDLE9BQU8sS0FBSyxLQUFLLENBQUMsT0FBTztZQUFFLE9BQU8sS0FBSyxDQUFDO1FBQ2pELElBQUksSUFBSSxDQUFDLE9BQU8sS0FBSyxLQUFLLENBQUMsT0FBTztZQUFFLE9BQU8sS0FBSyxDQUFDO1FBQ2pELElBQUksSUFBSSxDQUFDLEdBQUcsS0FBSyxLQUFLLENBQUMsR0FBRztZQUFFLE9BQU8sS0FBSyxDQUFDO1FBQ3pDLElBQUksSUFBSSxDQUFDLFVBQVUsS0FBSyxLQUFLLENBQUMsVUFBVTtZQUFFLE9BQU8sS0FBSyxDQUFDO1FBQ3ZELElBQUksSUFBSSxDQUFDLE9BQU8sS0FBSyxLQUFLLENBQUMsT0FBTztZQUFFLE9BQU8sS0FBSyxDQUFDO1FBQ2pELElBQUksSUFBSSxDQUFDLGNBQWMsS0FBSyxLQUFLLENBQUMsY0FBYztZQUFFLE9BQU8sS0FBSyxDQUFDO1FBQy9ELE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBDbGFzcyByZXByZXNlbnRpbmcgc2V0dGluZ3MgZm9yIGEgdGlsZSBsYXllci5cbiAqL1xuZXhwb3J0IGNsYXNzIFRpbGVMYXllclNldHRpbmdzIHtcbiAgLyoqXG4gICAqIFRoZSBtYXhpbXVtIHpvb20gbGV2ZWwgZm9yIGEgbWFwIHZpZXcuXG4gICAqXG4gICAqIEB0eXBlIHtudW1iZXJ9XG4gICAqIEBkZWZhdWx0IDE5XG4gICAqL1xuICBtYXhab29tOiBudW1iZXIgPSAxOTtcbiAgLyoqXG4gICAqIFRoZSBtaW5pbXVtIHpvb20gbGV2ZWwgYWxsb3dlZC5cbiAgICpcbiAgICogQHR5cGUge251bWJlcn1cbiAgICovXG4gIG1pblpvb206IG51bWJlciA9IDA7XG4gIC8qKlxuICAgKiBUaGUgb3BhY2l0eSBvZiBhbiBlbGVtZW50LlxuICAgKlxuICAgKiBAdHlwZSB7bnVtYmVyfVxuICAgKiBAZGVmYXVsdCAwLjZcbiAgICovXG4gIG9wYWNpdHk6IG51bWJlciA9IDAuNjtcbiAgLyoqXG4gICAqIFJlcHJlc2VudHMgdGhlIHRpbGVzIFVSTC5cbiAgICogQHR5cGVkZWYge3N0cmluZ30gdXJsXG4gICAqXG4gICAqIEBleGFtcGxlXG4gICAqICdodHRwczovL2V4YW1wbGUuZXgve3p9L3t4fS97eX0ucG5nJ1xuICAgKi9cbiAgdXJsOiBzdHJpbmcgPSAnJztcbiAgLyoqXG4gICAqIFRoZSBwcm9qZWN0aW9uIG9mIHRoZSBjb29yZGluYXRlIHN5c3RlbS5cbiAgICpcbiAgICogQHR5cGUge3N0cmluZ31cbiAgICogQGRlZmF1bHQgJ0VQU0c6Mzg1NydcbiAgICovXG4gIHByb2plY3Rpb246IHN0cmluZyA9ICdFUFNHOjM4NTcnO1xuICAvKipcbiAgICogQWRkaXRpb25hbCBoZWFkZXJzIHRoYXQgc2hvdWxkIGJlIGFkZGVkIHRvIGVhY2ggdGlsZSByZXF1ZXN0XG4gICAqXG4gICAqIEB0eXBlIHtSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+fVxuICAgKiBAZGVmYXVsdCBBbiBlbXB0eSBhcnJheVxuICAgKi9cbiAgcmVxdWVzdEhlYWRlcnM6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4gfCBudWxsID0gbnVsbDtcbiAgLyoqXG4gICAqIENyZWF0ZXMgYSBjb3B5IG9mIHRoZSBnaXZlbiB0aWxlIGxheWVyIHNldHRpbmdzLlxuICAgKlxuICAgKiBAcGFyYW0ge1RpbGVMYXllclNldHRpbmdzfSBtb2RlbCAtIFRoZSB0aWxlIGxheWVyIHNldHRpbmdzIHRvIGJlIGNvcGllZC5cbiAgICogQHJldHVybiB7VGlsZUxheWVyU2V0dGluZ3N9IC0gQSBuZXcgaW5zdGFuY2Ugb2YgVGlsZUxheWVyU2V0dGluZ3Mgd2l0aCB0aGUgc2FtZSBwcm9wZXJ0aWVzIGFzIHRoZSBtb2RlbC5cbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgY29weShtb2RlbDogVGlsZUxheWVyU2V0dGluZ3MpOiBUaWxlTGF5ZXJTZXR0aW5ncyB7XG4gICAgY29uc3QgcmVzdWx0ID0gbmV3IFRpbGVMYXllclNldHRpbmdzKCk7XG4gICAgcmVzdWx0Lm1heFpvb20gPSBtb2RlbC5tYXhab29tO1xuICAgIHJlc3VsdC5taW5ab29tID0gbW9kZWwubWluWm9vbTtcbiAgICByZXN1bHQucHJvamVjdGlvbiA9IG1vZGVsLnByb2plY3Rpb247XG4gICAgcmVzdWx0Lm9wYWNpdHkgPSBtb2RlbC5vcGFjaXR5O1xuICAgIHJlc3VsdC51cmwgPSBtb2RlbC51cmw7XG4gICAgcmVzdWx0LnJlcXVlc3RIZWFkZXJzID0gbW9kZWwucmVxdWVzdEhlYWRlcnM7XG4gICAgcmV0dXJuIHJlc3VsdDtcbiAgfVxuXG4gIC8qKlxuICAgKiBTZXRzIHRoZSBVUkwgb2YgdGhlIFRpbGVMYXllclNldHRpbmdzIG9iamVjdC5cbiAgICpcbiAgICogQHBhcmFtIHtzdHJpbmd9IHVybCAtIFRoZSBVUkwgdG8gYmUgc2V0LlxuICAgKiBAcmV0dXJuIHtUaWxlTGF5ZXJTZXR0aW5nc30gLSBUaGUgdXBkYXRlZCBUaWxlTGF5ZXJTZXR0aW5ncyBvYmplY3QuXG4gICAqL1xuICBzZXRVcmwodXJsOiBzdHJpbmcpOiBUaWxlTGF5ZXJTZXR0aW5ncyB7XG4gICAgcmV0dXJuIFRpbGVMYXllclNldHRpbmdzLmNvcHkoeyAuLi50aGlzLCB1cmwgfSk7XG4gIH1cblxuICAvKipcbiAgICogU2V0cyB0aGUgcmVxdWVzdEhlYWRlcnMgb2YgdGhlIFRpbGVMYXllclNldHRpbmdzIG9iamVjdC5cbiAgICpcbiAgICogQHBhcmFtIHtSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+fSByZXF1ZXN0SGVhZGVycyAtIFRoZSBoZWFkZXJzIHdoaWNoIHNob3VsZCBiZSBwcm92aWRlZC5cbiAgICogQHJldHVybiB7VGlsZUxheWVyU2V0dGluZ3N9IC0gVGhlIHVwZGF0ZWQgVGlsZUxheWVyU2V0dGluZ3Mgb2JqZWN0LlxuICAgKi9cbiAgc2V0UmVxdWVzdEhlYWRlcnMocmVxdWVzdEhlYWRlcnM6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4pOiBUaWxlTGF5ZXJTZXR0aW5ncyB7XG4gICAgcmV0dXJuIFRpbGVMYXllclNldHRpbmdzLmNvcHkoeyAuLi50aGlzLCByZXF1ZXN0SGVhZGVycyB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTZXRzIHRoZSBtYXhpbXVtIHpvb20gbGV2ZWwgZm9yIHRoZSB0aWxlIGxheWVyLlxuICAgKlxuICAgKiBAcGFyYW0ge251bWJlcn0gbWF4Wm9vbSAtIFRoZSBtYXhpbXVtIHpvb20gbGV2ZWwuXG4gICAqIEByZXR1cm5zIHtUaWxlTGF5ZXJTZXR0aW5nc30gLSBUaGUgdXBkYXRlZCB0aWxlIGxheWVyIHNldHRpbmdzIG9iamVjdC5cbiAgICovXG4gIHNldE1heFpvb20obWF4Wm9vbTogbnVtYmVyKTogVGlsZUxheWVyU2V0dGluZ3Mge1xuICAgIHJldHVybiBUaWxlTGF5ZXJTZXR0aW5ncy5jb3B5KHsgLi4udGhpcywgbWF4Wm9vbSB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTZXRzIHRoZSBtaW5pbXVtIHpvb20gbGV2ZWwgZm9yIHRoZSBUaWxlIExheWVyLlxuICAgKlxuICAgKiBAcGFyYW0ge251bWJlcn0gbWluWm9vbSAtIFRoZSBtaW5pbXVtIHpvb20gbGV2ZWwgdG8gYmUgc2V0LlxuICAgKiBAcmV0dXJuIHtUaWxlTGF5ZXJTZXR0aW5nc30gVGhlIG1vZGlmaWVkIFRpbGVMYXllclNldHRpbmdzIG9iamVjdCB3aXRoIHRoZSB1cGRhdGVkIG1pbmltdW0gem9vbSBsZXZlbC5cbiAgICovXG4gIHNldE1pblpvb20obWluWm9vbTogbnVtYmVyKTogVGlsZUxheWVyU2V0dGluZ3Mge1xuICAgIHJldHVybiBUaWxlTGF5ZXJTZXR0aW5ncy5jb3B5KHsgLi4udGhpcywgbWluWm9vbSB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTZXRzIHRoZSBvcGFjaXR5IG9mIHRoZSBUaWxlTGF5ZXJTZXR0aW5ncy5cbiAgICpcbiAgICogQHBhcmFtIHtudW1iZXJ9IG9wYWNpdHkgLSBUaGUgb3BhY2l0eSB2YWx1ZSB0byBzZXQuIE11c3QgYmUgYSBudW1iZXIgYmV0d2VlbiAwIGFuZCAxLlxuICAgKiBAcmV0dXJuIHtUaWxlTGF5ZXJTZXR0aW5nc30gLSBBIG5ldyBpbnN0YW5jZSBvZiBUaWxlTGF5ZXJTZXR0aW5ncyB3aXRoIHRoZSBvcGFjaXR5IHNldC5cbiAgICovXG4gIHNldE9wYWNpdHkob3BhY2l0eTogbnVtYmVyKTogVGlsZUxheWVyU2V0dGluZ3Mge1xuICAgIHJldHVybiBUaWxlTGF5ZXJTZXR0aW5ncy5jb3B5KHsgLi4udGhpcywgb3BhY2l0eSB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTZXRzIHRoZSBwcm9qZWN0aW9uIGZvciB0aGUgdGlsZSBsYXllciBzZXR0aW5ncy5cbiAgICpcbiAgICogQHBhcmFtIHtzdHJpbmd9IHByb2plY3Rpb24gLSBUaGUgZGVzaXJlZCBwcm9qZWN0aW9uIGZvciB0aGUgdGlsZSBsYXllciBzZXR0aW5ncy5cbiAgICogQHJldHVybiB7VGlsZUxheWVyU2V0dGluZ3N9IC0gVGhlIHVwZGF0ZWQgdGlsZSBsYXllciBzZXR0aW5ncyB3aXRoIHRoZSBuZXcgcHJvamVjdGlvbi5cbiAgICovXG4gIHNldFByb2plY3Rpb24ocHJvamVjdGlvbjogc3RyaW5nKTogVGlsZUxheWVyU2V0dGluZ3Mge1xuICAgIHJldHVybiBUaWxlTGF5ZXJTZXR0aW5ncy5jb3B5KHsgLi4udGhpcywgcHJvamVjdGlvbiB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDaGVja3MgaWYgdGhlIGN1cnJlbnQgaW5zdGFuY2Ugb2YgVGlsZUxheWVyU2V0dGluZ3MgaXMgZXF1YWwgdG8gdGhlIGdpdmVuIG1vZGVsLlxuICAgKiBAcGFyYW0ge1RpbGVMYXllclNldHRpbmdzfSBtb2RlbCAtIFRoZSBtb2RlbCB0byBjb21wYXJlIGFnYWluc3QuXG4gICAqIEByZXR1cm4ge2Jvb2xlYW59IC0gVHJ1ZSBpZiBhbGwgcHJvcGVydGllcyBvZiB0aGUgY3VycmVudCBpbnN0YW5jZSBtYXRjaGVzIHRoZSBwcm9wZXJ0aWVzIG9mIHRoZSBtb2RlbDtcbiAgICogICAgICAgICAgICAgICAgICAgIG90aGVyd2lzZSwgZmFsc2UuXG4gICAqL1xuICBwdWJsaWMgaXNTYW1lKG1vZGVsOiBUaWxlTGF5ZXJTZXR0aW5ncyk6IGJvb2xlYW4ge1xuICAgIGlmICh0aGlzLm1heFpvb20gIT09IG1vZGVsLm1heFpvb20pIHJldHVybiBmYWxzZTtcbiAgICBpZiAodGhpcy5taW5ab29tICE9PSBtb2RlbC5taW5ab29tKSByZXR1cm4gZmFsc2U7XG4gICAgaWYgKHRoaXMudXJsICE9PSBtb2RlbC51cmwpIHJldHVybiBmYWxzZTtcbiAgICBpZiAodGhpcy5wcm9qZWN0aW9uICE9PSBtb2RlbC5wcm9qZWN0aW9uKSByZXR1cm4gZmFsc2U7XG4gICAgaWYgKHRoaXMub3BhY2l0eSAhPT0gbW9kZWwub3BhY2l0eSkgcmV0dXJuIGZhbHNlO1xuICAgIGlmICh0aGlzLnJlcXVlc3RIZWFkZXJzICE9PSBtb2RlbC5yZXF1ZXN0SGVhZGVycykgcmV0dXJuIGZhbHNlO1xuICAgIHJldHVybiB0cnVlO1xuICB9XG59XG4iXX0=
|
|
@@ -1163,6 +1163,13 @@ class TileLayerSettings {
|
|
|
1163
1163
|
* @default 'EPSG:3857'
|
|
1164
1164
|
*/
|
|
1165
1165
|
projection = 'EPSG:3857';
|
|
1166
|
+
/**
|
|
1167
|
+
* Additional headers that should be added to each tile request
|
|
1168
|
+
*
|
|
1169
|
+
* @type {Record<string, string>}
|
|
1170
|
+
* @default An empty array
|
|
1171
|
+
*/
|
|
1172
|
+
requestHeaders = null;
|
|
1166
1173
|
/**
|
|
1167
1174
|
* Creates a copy of the given tile layer settings.
|
|
1168
1175
|
*
|
|
@@ -1176,6 +1183,7 @@ class TileLayerSettings {
|
|
|
1176
1183
|
result.projection = model.projection;
|
|
1177
1184
|
result.opacity = model.opacity;
|
|
1178
1185
|
result.url = model.url;
|
|
1186
|
+
result.requestHeaders = model.requestHeaders;
|
|
1179
1187
|
return result;
|
|
1180
1188
|
}
|
|
1181
1189
|
/**
|
|
@@ -1187,6 +1195,15 @@ class TileLayerSettings {
|
|
|
1187
1195
|
setUrl(url) {
|
|
1188
1196
|
return TileLayerSettings.copy({ ...this, url });
|
|
1189
1197
|
}
|
|
1198
|
+
/**
|
|
1199
|
+
* Sets the requestHeaders of the TileLayerSettings object.
|
|
1200
|
+
*
|
|
1201
|
+
* @param {Record<string, string>} requestHeaders - The headers which should be provided.
|
|
1202
|
+
* @return {TileLayerSettings} - The updated TileLayerSettings object.
|
|
1203
|
+
*/
|
|
1204
|
+
setRequestHeaders(requestHeaders) {
|
|
1205
|
+
return TileLayerSettings.copy({ ...this, requestHeaders });
|
|
1206
|
+
}
|
|
1190
1207
|
/**
|
|
1191
1208
|
* Sets the maximum zoom level for the tile layer.
|
|
1192
1209
|
*
|
|
@@ -1240,6 +1257,8 @@ class TileLayerSettings {
|
|
|
1240
1257
|
return false;
|
|
1241
1258
|
if (this.opacity !== model.opacity)
|
|
1242
1259
|
return false;
|
|
1260
|
+
if (this.requestHeaders !== model.requestHeaders)
|
|
1261
|
+
return false;
|
|
1243
1262
|
return true;
|
|
1244
1263
|
}
|
|
1245
1264
|
}
|
|
@@ -1253,6 +1272,9 @@ class TileLayerFactory {
|
|
|
1253
1272
|
projection: get(settings.projection),
|
|
1254
1273
|
tileUrlFunction: this.getTileFunc(settings),
|
|
1255
1274
|
crossOrigin: 'Anonymous',
|
|
1275
|
+
tileLoadFunction: !!settings.requestHeaders
|
|
1276
|
+
? (tile, src) => this.tileLoader(tile, src, settings.requestHeaders)
|
|
1277
|
+
: undefined,
|
|
1256
1278
|
});
|
|
1257
1279
|
return new TileLayer({ source, opacity: settings.opacity });
|
|
1258
1280
|
}
|
|
@@ -1269,6 +1291,21 @@ class TileLayerFactory {
|
|
|
1269
1291
|
.replace('{y}', String(bound - (normalizedCoord?.y || y) - 1));
|
|
1270
1292
|
};
|
|
1271
1293
|
}
|
|
1294
|
+
tileLoader(tile, src, headers) {
|
|
1295
|
+
const client = new XMLHttpRequest();
|
|
1296
|
+
client.open('GET', src);
|
|
1297
|
+
client.responseType = 'arraybuffer';
|
|
1298
|
+
Object.keys(headers).forEach((k) => client.setRequestHeader(k, headers[k]));
|
|
1299
|
+
client.onload = function () {
|
|
1300
|
+
if (this.response !== undefined) {
|
|
1301
|
+
const arrayBufferView = new Uint8Array(this.response);
|
|
1302
|
+
const blob = new Blob([arrayBufferView], { type: 'image/png' });
|
|
1303
|
+
const urlCreator = window.URL || window.webkitURL;
|
|
1304
|
+
tile.getImage().src = urlCreator.createObjectURL(blob);
|
|
1305
|
+
}
|
|
1306
|
+
};
|
|
1307
|
+
client.send();
|
|
1308
|
+
}
|
|
1272
1309
|
getNormalizedCoord(coord, zoom) {
|
|
1273
1310
|
const y = coord.y;
|
|
1274
1311
|
let x = coord.x;
|