ol 6.9.1-dev.1637438726573 → 6.9.1-dev.1637596194857
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/functions.d.ts +6 -0
- package/functions.d.ts.map +1 -1
- package/functions.js +21 -0
- package/functions.js.map +1 -1
- package/package.json +1 -1
- package/source/DataTile.d.ts +17 -7
- package/source/DataTile.d.ts.map +1 -1
- package/source/DataTile.js +13 -5
- package/source/DataTile.js.map +1 -1
- package/src/functions.js +21 -0
- package/src/source/DataTile.js +15 -5
- package/util.js +1 -1
package/functions.d.ts
CHANGED
|
@@ -24,4 +24,10 @@ export function VOID(): void;
|
|
|
24
24
|
* @template ReturnType
|
|
25
25
|
*/
|
|
26
26
|
export function memoizeOne<ReturnType_1>(fn: (...arg0: any[]) => ReturnType_1): (...arg0: any[]) => ReturnType_1;
|
|
27
|
+
/**
|
|
28
|
+
* @template T
|
|
29
|
+
* @param {function(): (T | Promise<T>)} getter A function that returns a value or a promise for a value.
|
|
30
|
+
* @return {Promise<T>} A promise for the value.
|
|
31
|
+
*/
|
|
32
|
+
export function toPromise<T>(getter: () => T | Promise<T>): Promise<T>;
|
|
27
33
|
//# sourceMappingURL=functions.d.ts.map
|
package/functions.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"functions.d.ts","sourceRoot":"","sources":["src/functions.js"],"names":[],"mappings":"AAMA;;;GAGG;AACH,gCAEC;AAED;;;GAGG;AACH,iCAEC;AAED;;;;GAIG;AACH,6BAAyB;AAEzB;;;;;;;;GAQG;AACH,iHAqBC"}
|
|
1
|
+
{"version":3,"file":"functions.d.ts","sourceRoot":"","sources":["src/functions.js"],"names":[],"mappings":"AAMA;;;GAGG;AACH,gCAEC;AAED;;;GAGG;AACH,iCAEC;AAED;;;;GAIG;AACH,6BAAyB;AAEzB;;;;;;;;GAQG;AACH,iHAqBC;AAED;;;;GAIG;AACH,uEAcC"}
|
package/functions.js
CHANGED
|
@@ -49,4 +49,25 @@ export function memoizeOne(fn) {
|
|
|
49
49
|
return lastResult;
|
|
50
50
|
};
|
|
51
51
|
}
|
|
52
|
+
/**
|
|
53
|
+
* @template T
|
|
54
|
+
* @param {function(): (T | Promise<T>)} getter A function that returns a value or a promise for a value.
|
|
55
|
+
* @return {Promise<T>} A promise for the value.
|
|
56
|
+
*/
|
|
57
|
+
export function toPromise(getter) {
|
|
58
|
+
function promiseGetter() {
|
|
59
|
+
var value;
|
|
60
|
+
try {
|
|
61
|
+
value = getter();
|
|
62
|
+
}
|
|
63
|
+
catch (err) {
|
|
64
|
+
return Promise.reject(err);
|
|
65
|
+
}
|
|
66
|
+
if (value instanceof Promise) {
|
|
67
|
+
return value;
|
|
68
|
+
}
|
|
69
|
+
return Promise.resolve(value);
|
|
70
|
+
}
|
|
71
|
+
return promiseGetter();
|
|
72
|
+
}
|
|
52
73
|
//# sourceMappingURL=functions.js.map
|
package/functions.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"functions.js","sourceRoot":"","sources":["src/functions.js"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAC,MAAM,IAAI,WAAW,EAAC,MAAM,YAAY,CAAC;AAEjD;;;GAGG;AACH,MAAM,UAAU,IAAI;IAClB,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,KAAK;IACnB,OAAO,KAAK,CAAC;AACf,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,IAAI,KAAI,CAAC;AAEzB;;;;;;;;GAQG;AACH,MAAM,UAAU,UAAU,CAAC,EAAE;IAC3B,IAAI,MAAM,GAAG,KAAK,CAAC;IAEnB,yBAAyB;IACzB,IAAI,UAAU,CAAC;IAEf,yBAAyB;IACzB,IAAI,QAAQ,CAAC;IAEb,IAAI,QAAQ,CAAC;IAEb,OAAO;QACL,IAAM,QAAQ,GAAG,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QACvD,IAAI,CAAC,MAAM,IAAI,IAAI,KAAK,QAAQ,IAAI,CAAC,WAAW,CAAC,QAAQ,EAAE,QAAQ,CAAC,EAAE;YACpE,MAAM,GAAG,IAAI,CAAC;YACd,QAAQ,GAAG,IAAI,CAAC;YAChB,QAAQ,GAAG,QAAQ,CAAC;YACpB,UAAU,GAAG,EAAE,CAAC,KAAK,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;SACxC;QACD,OAAO,UAAU,CAAC;IACpB,CAAC,CAAC;AACJ,CAAC"}
|
|
1
|
+
{"version":3,"file":"functions.js","sourceRoot":"","sources":["src/functions.js"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAC,MAAM,IAAI,WAAW,EAAC,MAAM,YAAY,CAAC;AAEjD;;;GAGG;AACH,MAAM,UAAU,IAAI;IAClB,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,KAAK;IACnB,OAAO,KAAK,CAAC;AACf,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,IAAI,KAAI,CAAC;AAEzB;;;;;;;;GAQG;AACH,MAAM,UAAU,UAAU,CAAC,EAAE;IAC3B,IAAI,MAAM,GAAG,KAAK,CAAC;IAEnB,yBAAyB;IACzB,IAAI,UAAU,CAAC;IAEf,yBAAyB;IACzB,IAAI,QAAQ,CAAC;IAEb,IAAI,QAAQ,CAAC;IAEb,OAAO;QACL,IAAM,QAAQ,GAAG,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QACvD,IAAI,CAAC,MAAM,IAAI,IAAI,KAAK,QAAQ,IAAI,CAAC,WAAW,CAAC,QAAQ,EAAE,QAAQ,CAAC,EAAE;YACpE,MAAM,GAAG,IAAI,CAAC;YACd,QAAQ,GAAG,IAAI,CAAC;YAChB,QAAQ,GAAG,QAAQ,CAAC;YACpB,UAAU,GAAG,EAAE,CAAC,KAAK,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;SACxC;QACD,OAAO,UAAU,CAAC;IACpB,CAAC,CAAC;AACJ,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,SAAS,CAAC,MAAM;IAC9B,SAAS,aAAa;QACpB,IAAI,KAAK,CAAC;QACV,IAAI;YACF,KAAK,GAAG,MAAM,EAAE,CAAC;SAClB;QAAC,OAAO,GAAG,EAAE;YACZ,OAAO,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;SAC5B;QACD,IAAI,KAAK,YAAY,OAAO,EAAE;YAC5B,OAAO,KAAK,CAAC;SACd;QACD,OAAO,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;IAChC,CAAC;IACD,OAAO,aAAa,EAAE,CAAC;AACzB,CAAC"}
|
package/package.json
CHANGED
package/source/DataTile.d.ts
CHANGED
|
@@ -1,10 +1,15 @@
|
|
|
1
1
|
export default DataTileSource;
|
|
2
|
+
/**
|
|
3
|
+
* Data tile loading function. The function is called with z, x, and y tile coordinates and
|
|
4
|
+
* returns {@link import("../DataTile.js").Data data} for a tile or a promise for the same.
|
|
5
|
+
*/
|
|
6
|
+
export type Loader = (arg0: number, arg1: number, arg2: number) => DataView | Uint8Array | Uint8ClampedArray | Float32Array | Promise<DataView | Uint8Array | Uint8ClampedArray | Float32Array>;
|
|
2
7
|
export type Options = {
|
|
3
8
|
/**
|
|
4
9
|
* Data loader. Called with z, x, and y tile coordinates.
|
|
5
|
-
* Returns
|
|
10
|
+
* Returns {@link import("../DataTile.js").Data data} for a tile or a promise for the same.
|
|
6
11
|
*/
|
|
7
|
-
loader?: (arg0: number, arg1: number, arg2: number) => Promise<DataView | Uint8Array | Uint8ClampedArray | Float32Array>;
|
|
12
|
+
loader?: (arg0: number, arg1: number, arg2: number) => DataView | Uint8Array | Uint8ClampedArray | Float32Array | Promise<DataView | Uint8Array | Uint8ClampedArray | Float32Array>;
|
|
8
13
|
/**
|
|
9
14
|
* Optional max zoom level. Not used if `tileGrid` is provided.
|
|
10
15
|
*/
|
|
@@ -54,10 +59,15 @@ export type Options = {
|
|
|
54
59
|
*/
|
|
55
60
|
bandCount?: number;
|
|
56
61
|
};
|
|
62
|
+
/**
|
|
63
|
+
* Data tile loading function. The function is called with z, x, and y tile coordinates and
|
|
64
|
+
* returns {@link import("../DataTile.js").Data data} for a tile or a promise for the same.
|
|
65
|
+
* @typedef {function(number, number, number) : (import("../DataTile.js").Data|Promise<import("../DataTile.js").Data>)} Loader
|
|
66
|
+
*/
|
|
57
67
|
/**
|
|
58
68
|
* @typedef {Object} Options
|
|
59
|
-
* @property {
|
|
60
|
-
* Returns
|
|
69
|
+
* @property {Loader} [loader] Data loader. Called with z, x, and y tile coordinates.
|
|
70
|
+
* Returns {@link import("../DataTile.js").Data data} for a tile or a promise for the same.
|
|
61
71
|
* @property {number} [maxZoom=42] Optional max zoom level. Not used if `tileGrid` is provided.
|
|
62
72
|
* @property {number} [minZoom=0] Optional min zoom level. Not used if `tileGrid` is provided.
|
|
63
73
|
* @property {number|import("../size.js").Size} [tileSize=[256, 256]] The pixel width and height of the tiles.
|
|
@@ -73,7 +83,7 @@ export type Options = {
|
|
|
73
83
|
*/
|
|
74
84
|
/**
|
|
75
85
|
* @classdesc
|
|
76
|
-
*
|
|
86
|
+
* A source for typed array data tiles.
|
|
77
87
|
*
|
|
78
88
|
* @fires import("./Tile.js").TileSourceEvent
|
|
79
89
|
* @api
|
|
@@ -102,10 +112,10 @@ declare class DataTileSource extends TileSource {
|
|
|
102
112
|
*/
|
|
103
113
|
bandCount: number;
|
|
104
114
|
/**
|
|
105
|
-
* @param {
|
|
115
|
+
* @param {Loader} loader The data loader.
|
|
106
116
|
* @protected
|
|
107
117
|
*/
|
|
108
|
-
protected setLoader(loader: (arg0: number, arg1: number, arg2: number) => Promise<DataView | Uint8Array | Uint8ClampedArray | Float32Array>): void;
|
|
118
|
+
protected setLoader(loader: (arg0: number, arg1: number, arg2: number) => DataView | Uint8Array | Uint8ClampedArray | Float32Array | Promise<DataView | Uint8Array | Uint8ClampedArray | Float32Array>): void;
|
|
109
119
|
/**
|
|
110
120
|
* @abstract
|
|
111
121
|
* @param {number} z Tile coordinate z.
|
package/source/DataTile.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DataTile.d.ts","sourceRoot":"","sources":["../src/source/DataTile.js"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"DataTile.d.ts","sourceRoot":"","sources":["../src/source/DataTile.js"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAcA;;;;GAIG;AAEH;;;;;;;;;;;;;;;;GAgBG;AAEH;;;;;;GAMG;AACH;IACE;;OAEG;IACH,8BA2CC;IAjBC;;;OAGG;IACH,yBAA0B;IAE1B;;OAEG;IACH,gBAA6B;IAmD/B;;;OAGG;IACH,qEAoBC;IAvEC;;OAEG;IACH,WAFU,MAAM,CAEwD;IAG1E;;;OAGG;IACH,8MAEC;IAED;;;;;;;;OAQG;IACH,4HAsBC;CA2BF"}
|
package/source/DataTile.js
CHANGED
|
@@ -25,10 +25,16 @@ import { assign } from '../obj.js';
|
|
|
25
25
|
import { createXYZ, extentFromProjection } from '../tilegrid.js';
|
|
26
26
|
import { getKeyZXY } from '../tilecoord.js';
|
|
27
27
|
import { getUid } from '../util.js';
|
|
28
|
+
import { toPromise } from '../functions.js';
|
|
29
|
+
/**
|
|
30
|
+
* Data tile loading function. The function is called with z, x, and y tile coordinates and
|
|
31
|
+
* returns {@link import("../DataTile.js").Data data} for a tile or a promise for the same.
|
|
32
|
+
* @typedef {function(number, number, number) : (import("../DataTile.js").Data|Promise<import("../DataTile.js").Data>)} Loader
|
|
33
|
+
*/
|
|
28
34
|
/**
|
|
29
35
|
* @typedef {Object} Options
|
|
30
|
-
* @property {
|
|
31
|
-
* Returns
|
|
36
|
+
* @property {Loader} [loader] Data loader. Called with z, x, and y tile coordinates.
|
|
37
|
+
* Returns {@link import("../DataTile.js").Data data} for a tile or a promise for the same.
|
|
32
38
|
* @property {number} [maxZoom=42] Optional max zoom level. Not used if `tileGrid` is provided.
|
|
33
39
|
* @property {number} [minZoom=0] Optional min zoom level. Not used if `tileGrid` is provided.
|
|
34
40
|
* @property {number|import("../size.js").Size} [tileSize=[256, 256]] The pixel width and height of the tiles.
|
|
@@ -44,7 +50,7 @@ import { getUid } from '../util.js';
|
|
|
44
50
|
*/
|
|
45
51
|
/**
|
|
46
52
|
* @classdesc
|
|
47
|
-
*
|
|
53
|
+
* A source for typed array data tiles.
|
|
48
54
|
*
|
|
49
55
|
* @fires import("./Tile.js").TileSourceEvent
|
|
50
56
|
* @api
|
|
@@ -94,7 +100,7 @@ var DataTileSource = /** @class */ (function (_super) {
|
|
|
94
100
|
return _this;
|
|
95
101
|
}
|
|
96
102
|
/**
|
|
97
|
-
* @param {
|
|
103
|
+
* @param {Loader} loader The data loader.
|
|
98
104
|
* @protected
|
|
99
105
|
*/
|
|
100
106
|
DataTileSource.prototype.setLoader = function (loader) {
|
|
@@ -116,7 +122,9 @@ var DataTileSource = /** @class */ (function (_super) {
|
|
|
116
122
|
}
|
|
117
123
|
var sourceLoader = this.loader_;
|
|
118
124
|
function loader() {
|
|
119
|
-
return
|
|
125
|
+
return toPromise(function () {
|
|
126
|
+
return sourceLoader(z, x, y);
|
|
127
|
+
});
|
|
120
128
|
}
|
|
121
129
|
var tile = new DataTile(assign({ tileCoord: [z, x, y], loader: loader }, this.tileOptions));
|
|
122
130
|
tile.key = this.getKey();
|
package/source/DataTile.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DataTile.js","sourceRoot":"","sources":["../src/source/DataTile.js"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA;;GAEG;AACH,OAAO,QAAQ,MAAM,gBAAgB,CAAC;AACtC,OAAO,SAAS,MAAM,wBAAwB,CAAC;AAC/C,OAAO,aAAa,MAAM,oBAAoB,CAAC;AAC/C,OAAO,UAAU,EAAE,EAAC,eAAe,EAAC,MAAM,WAAW,CAAC;AACtD,OAAO,SAAS,MAAM,iBAAiB,CAAC;AACxC,OAAO,EAAC,MAAM,EAAC,MAAM,WAAW,CAAC;AACjC,OAAO,EAAC,SAAS,EAAE,oBAAoB,EAAC,MAAM,gBAAgB,CAAC;AAC/D,OAAO,EAAC,SAAS,EAAC,MAAM,iBAAiB,CAAC;AAC1C,OAAO,EAAC,MAAM,EAAC,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"DataTile.js","sourceRoot":"","sources":["../src/source/DataTile.js"],"names":[],"mappings":"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"}
|
package/src/functions.js
CHANGED
|
@@ -58,3 +58,24 @@ export function memoizeOne(fn) {
|
|
|
58
58
|
return lastResult;
|
|
59
59
|
};
|
|
60
60
|
}
|
|
61
|
+
|
|
62
|
+
/**
|
|
63
|
+
* @template T
|
|
64
|
+
* @param {function(): (T | Promise<T>)} getter A function that returns a value or a promise for a value.
|
|
65
|
+
* @return {Promise<T>} A promise for the value.
|
|
66
|
+
*/
|
|
67
|
+
export function toPromise(getter) {
|
|
68
|
+
function promiseGetter() {
|
|
69
|
+
let value;
|
|
70
|
+
try {
|
|
71
|
+
value = getter();
|
|
72
|
+
} catch (err) {
|
|
73
|
+
return Promise.reject(err);
|
|
74
|
+
}
|
|
75
|
+
if (value instanceof Promise) {
|
|
76
|
+
return value;
|
|
77
|
+
}
|
|
78
|
+
return Promise.resolve(value);
|
|
79
|
+
}
|
|
80
|
+
return promiseGetter();
|
|
81
|
+
}
|
package/src/source/DataTile.js
CHANGED
|
@@ -10,11 +10,18 @@ import {assign} from '../obj.js';
|
|
|
10
10
|
import {createXYZ, extentFromProjection} from '../tilegrid.js';
|
|
11
11
|
import {getKeyZXY} from '../tilecoord.js';
|
|
12
12
|
import {getUid} from '../util.js';
|
|
13
|
+
import {toPromise} from '../functions.js';
|
|
14
|
+
|
|
15
|
+
/**
|
|
16
|
+
* Data tile loading function. The function is called with z, x, and y tile coordinates and
|
|
17
|
+
* returns {@link import("../DataTile.js").Data data} for a tile or a promise for the same.
|
|
18
|
+
* @typedef {function(number, number, number) : (import("../DataTile.js").Data|Promise<import("../DataTile.js").Data>)} Loader
|
|
19
|
+
*/
|
|
13
20
|
|
|
14
21
|
/**
|
|
15
22
|
* @typedef {Object} Options
|
|
16
|
-
* @property {
|
|
17
|
-
* Returns
|
|
23
|
+
* @property {Loader} [loader] Data loader. Called with z, x, and y tile coordinates.
|
|
24
|
+
* Returns {@link import("../DataTile.js").Data data} for a tile or a promise for the same.
|
|
18
25
|
* @property {number} [maxZoom=42] Optional max zoom level. Not used if `tileGrid` is provided.
|
|
19
26
|
* @property {number} [minZoom=0] Optional min zoom level. Not used if `tileGrid` is provided.
|
|
20
27
|
* @property {number|import("../size.js").Size} [tileSize=[256, 256]] The pixel width and height of the tiles.
|
|
@@ -31,7 +38,7 @@ import {getUid} from '../util.js';
|
|
|
31
38
|
|
|
32
39
|
/**
|
|
33
40
|
* @classdesc
|
|
34
|
-
*
|
|
41
|
+
* A source for typed array data tiles.
|
|
35
42
|
*
|
|
36
43
|
* @fires import("./Tile.js").TileSourceEvent
|
|
37
44
|
* @api
|
|
@@ -86,7 +93,7 @@ class DataTileSource extends TileSource {
|
|
|
86
93
|
}
|
|
87
94
|
|
|
88
95
|
/**
|
|
89
|
-
* @param {
|
|
96
|
+
* @param {Loader} loader The data loader.
|
|
90
97
|
* @protected
|
|
91
98
|
*/
|
|
92
99
|
setLoader(loader) {
|
|
@@ -109,8 +116,11 @@ class DataTileSource extends TileSource {
|
|
|
109
116
|
}
|
|
110
117
|
|
|
111
118
|
const sourceLoader = this.loader_;
|
|
119
|
+
|
|
112
120
|
function loader() {
|
|
113
|
-
return
|
|
121
|
+
return toPromise(function () {
|
|
122
|
+
return sourceLoader(z, x, y);
|
|
123
|
+
});
|
|
114
124
|
}
|
|
115
125
|
|
|
116
126
|
const tile = new DataTile(
|
package/util.js
CHANGED