ol 10.6.2-dev.1762194681112 → 10.6.2-dev.1762283093485
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/Map.d.ts +1 -1
- package/dist/ol.d.ts +2 -0
- package/dist/ol.d.ts.map +1 -1
- package/dist/ol.js +1 -1
- package/dist/ol.js.map +1 -1
- package/interaction/Modify.d.ts +8 -0
- package/interaction/Modify.d.ts.map +1 -1
- package/interaction/Modify.js +8 -0
- package/layer/WebGLTile.d.ts +3 -3
- package/package.json +1 -1
- package/renderer/canvas/TileLayer.d.ts +9 -0
- package/renderer/canvas/TileLayer.d.ts.map +1 -1
- package/renderer/canvas/TileLayer.js +29 -15
- package/source/DataTile.d.ts +4 -2
- package/source/DataTile.d.ts.map +1 -1
- package/source/DataTile.js +21 -4
- package/source/Tile.d.ts +2 -1
- package/source/Tile.d.ts.map +1 -1
- package/source/Tile.js +2 -1
- package/source/TileImage.d.ts +4 -2
- package/source/TileImage.d.ts.map +1 -1
- package/source/TileImage.js +14 -4
- package/tilecoord.d.ts +9 -3
- package/tilecoord.d.ts.map +1 -1
- package/tilecoord.js +14 -0
- package/util.js +1 -1
package/interaction/Modify.d.ts
CHANGED
|
@@ -68,6 +68,14 @@ export type Options = {
|
|
|
68
68
|
* boolean to indicate whether that event should be handled. By default,
|
|
69
69
|
* {@link module :ol/events/condition.singleClick} with
|
|
70
70
|
* {@link module :ol/events/condition.altKeyOnly} results in a vertex deletion.
|
|
71
|
+
* This combination is handled by wrapping the two condition checks in a single function:
|
|
72
|
+
* ```js
|
|
73
|
+
* import { altKeyOnly, singleClick } from 'ol/events/condition.js';
|
|
74
|
+
*
|
|
75
|
+
* function (event) {
|
|
76
|
+
* return altKeyOnly(event) && singleClick(event)
|
|
77
|
+
* }
|
|
78
|
+
* ```
|
|
71
79
|
*/
|
|
72
80
|
deleteCondition?: import("../events/condition.js").Condition | undefined;
|
|
73
81
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Modify.d.ts","sourceRoot":"","sources":["Modify.js"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"Modify.d.ts","sourceRoot":"","sources":["Modify.js"],"names":[],"mappings":"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"}
|
package/interaction/Modify.js
CHANGED
|
@@ -110,6 +110,14 @@ const ModifyEventType = {
|
|
|
110
110
|
* boolean to indicate whether that event should be handled. By default,
|
|
111
111
|
* {@link module:ol/events/condition.singleClick} with
|
|
112
112
|
* {@link module:ol/events/condition.altKeyOnly} results in a vertex deletion.
|
|
113
|
+
* This combination is handled by wrapping the two condition checks in a single function:
|
|
114
|
+
* ```js
|
|
115
|
+
* import { altKeyOnly, singleClick } from 'ol/events/condition.js';
|
|
116
|
+
*
|
|
117
|
+
* function (event) {
|
|
118
|
+
* return altKeyOnly(event) && singleClick(event)
|
|
119
|
+
* }
|
|
120
|
+
* ```
|
|
113
121
|
* @property {import("../events/condition.js").Condition} [insertVertexCondition] A
|
|
114
122
|
* function that takes a {@link module:ol/MapBrowserEvent~MapBrowserEvent} and
|
|
115
123
|
* returns a boolean to indicate whether a new vertex should be added to the sketch
|
package/layer/WebGLTile.d.ts
CHANGED
|
@@ -100,7 +100,7 @@ export type Options = {
|
|
|
100
100
|
/**
|
|
101
101
|
* Source for this layer.
|
|
102
102
|
*/
|
|
103
|
-
source?: import("../source/DataTile.js").default<import("../
|
|
103
|
+
source?: import("../source/DataTile.js").default<import("../ImageTile.js").default | import("../DataTile.js").default> | undefined;
|
|
104
104
|
/**
|
|
105
105
|
* Array
|
|
106
106
|
* of sources for this layer. Takes precedence over `source`. Can either be an array of sources, or a function that
|
|
@@ -108,7 +108,7 @@ export type Options = {
|
|
|
108
108
|
* {@link module :ol/source.sourcesFromTileGrid} for a helper function to generate sources that are organized in a
|
|
109
109
|
* pyramid following the same pattern as a tile grid. **Note:** All sources must have the same band count and content.
|
|
110
110
|
*/
|
|
111
|
-
sources?: import("../source/DataTile.js").default<import("../
|
|
111
|
+
sources?: import("../source/DataTile.js").default<import("../ImageTile.js").default | import("../DataTile.js").default>[] | ((arg0: import("../extent.js").Extent, arg1: number) => Array<SourceType>) | undefined;
|
|
112
112
|
/**
|
|
113
113
|
* Sets the layer as overlay on a map. The map will not manage
|
|
114
114
|
* this layer in its layers collection, and the layer will be rendered on top. This is useful for
|
|
@@ -165,7 +165,7 @@ export type ParsedStyle = {
|
|
|
165
165
|
* @fires import("../render/Event.js").RenderEvent#postrender
|
|
166
166
|
* @api
|
|
167
167
|
*/
|
|
168
|
-
declare class WebGLTileLayer extends BaseTileLayer<import("../source/DataTile.js").default<import("../
|
|
168
|
+
declare class WebGLTileLayer extends BaseTileLayer<import("../source/DataTile.js").default<import("../ImageTile.js").default | import("../DataTile.js").default>, WebGLTileLayerRenderer<any>> {
|
|
169
169
|
/**
|
|
170
170
|
* @param {Options} [options] Tile layer options.
|
|
171
171
|
*/
|
package/package.json
CHANGED
|
@@ -85,10 +85,19 @@ declare class CanvasTileLayerRenderer<LayerType extends import("../../layer/Tile
|
|
|
85
85
|
* @private
|
|
86
86
|
*/
|
|
87
87
|
private tileCache_;
|
|
88
|
+
/**
|
|
89
|
+
* @type {import("../../structs/LRUCache.js").default<import("../../Tile.js").default|null>}
|
|
90
|
+
* @private
|
|
91
|
+
*/
|
|
92
|
+
private sourceTileCache_;
|
|
88
93
|
/**
|
|
89
94
|
* @return {LRUCache} Tile cache.
|
|
90
95
|
*/
|
|
91
96
|
getTileCache(): LRUCache<any>;
|
|
97
|
+
/**
|
|
98
|
+
* @return {LRUCache} Tile cache.
|
|
99
|
+
*/
|
|
100
|
+
getSourceTileCache(): LRUCache<any>;
|
|
92
101
|
/**
|
|
93
102
|
* Get a tile from the cache or create one if needed.
|
|
94
103
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TileLayer.d.ts","sourceRoot":"","sources":["TileLayer.js"],"names":[],"mappings":";;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"TileLayer.d.ts","sourceRoot":"","sources":["TileLayer.js"],"names":[],"mappings":";;;;;;;;;;AAkGA;;;GAGG;AAEH;;;;;;GAMG;AACH,sCAHkG,SAAS,SAA7F,OAAO,qBAAqB,EAAE,OAAO,GAAC,OAAO,2BAA2B,EAAE,OAAQ;IAI9F;;;OAGG;IACH,uBAHW,SAAS,YACT,OAAO,EAwFjB;IAjFC;;;OAGG;IACH,eAFU,OAAO,CAEQ;IAEzB;;;OAGG;IACH,gBAFU,OAAO,CAEU;IAE3B;;;OAGG;IACH,wBAA2B;IAE3B;;;OAGG;IACH,8BAFU,MAAM,CAEO;IAEvB;;;OAGG;IACH,8BAFU,OAAO,0BAA0B,EAAE,OAAO,GAAC,IAAI,CAE3B;IAE9B;;;OAGG;IACH,yBAFW,KAAK,CAAC,OAAO,eAAe,EAAE,OAAO,CAAC,CAE1B;IAEvB;;;OAGG;IACH,2BAAuB;IAEvB;;;OAGG;IACH,gCAA4B;IAE5B;;;OAGG;IACH,sBAFU,OAAO,iBAAiB,EAAE,MAAM,CAEX;IAE/B;;;OAGG;IACH,uBAA+C;IAE/C;;;OAGG;IACH,uBAA8C;IAI9C;;;OAGG;IACH,mBAAyC;IAEzC;;;OAGG;IACH,yBAA4B;IAK9B;;OAEG;IACH,8BAEC;IAED;;OAEG;IACH,oCAKC;IAED;;;;;;;;;OASG;IACH,6BAPW,MAAM,KACN,MAAM,KACN,MAAM,cACN,OAAO,cAAc,EAAE,UAAU,GAChC,OAAO,eAAe,EAAE,OAAO,GAAC,IAAI,CAiC/C;IAED;;;;;;;OAOG;IACH,qBAPW,MAAM,KACN,MAAM,KACN,MAAM,cACN,OAAO,cAAc,EAAE,UAAU,GAChC,OAAO,eAAe,EAAE,OAAO,GAAC,IAAI,CAS/C;IAED;;;;OAIG;IACH,wBAJW,OAAO,gBAAgB,EAAE,KAAK,GAC7B,iBAAiB,CA6E5B;IAiCD;;;;OAIG;IACH,uCAHY,OAAO,CAKlB;IAED;;;;;;OAMG;IACH,yBANW,OAAO,cAAc,EAAE,UAAU,UACjC,OAAO,iBAAiB,EAAE,MAAM,YAChC,MAAM,YACN,UAAU,WACV,MAAM,QAmFhB;IAED;;;;;;;OAOG;IACH,uBAwBC;IAED;;;;;;;;;OASG;IACH,sBAgCC;IAED;;;;;;;;;;;;;OAaG;IACH,iCALW,OAAO,cAAc,EAAE,UAAU,UACjC,WAAW,GACV,WAAW,CA8TtB;IAED;;;OAGG;IACH,2BAFW,MAAM,QAOhB;IAED;;;;;;;;;;OAUG;IACH,yBAVW,OAAO,eAAe,EAAE,OAAO,cAC/B,OAAO,cAAc,EAAE,UAAU,KACjC,MAAM,KACN,MAAM,KACN,MAAM,KACN,MAAM,UACN,MAAM,cACN,OAAO,QAkDjB;IAED;;OAEG;IACH,YAFY,iBAAiB,GAAC,eAAe,CAK5C;IAED;;;;;OAKG;IACH,6BAJW,OAAO,oBAAoB,EAAE,OAAO,GACnC,iBAAiB,GAAC,eAAe,GAAC,gBAAgB,GAAC,gBAAgB,CAK9E;IAED;;;;;OAKG;IACH,qCALW;YAAQ,MAAM,GAAE;gBAAQ,MAAM,GAAE,OAAO;SAAC;KAAC,cACzC,OAAO,sBAAsB,EAAE,OAAO,QACtC,OAAO,eAAe,EAAE,OAAO,QAUzC;CACF;gCA38B+B,YAAY;qBAVvB,2BAA2B"}
|
|
@@ -15,11 +15,14 @@ import {
|
|
|
15
15
|
getTopLeft,
|
|
16
16
|
intersects,
|
|
17
17
|
} from '../../extent.js';
|
|
18
|
-
import {fromUserExtent} from '../../proj.js';
|
|
18
|
+
import {equivalent, fromUserExtent} from '../../proj.js';
|
|
19
19
|
import ReprojTile from '../../reproj/Tile.js';
|
|
20
20
|
import {toSize} from '../../size.js';
|
|
21
21
|
import LRUCache from '../../structs/LRUCache.js';
|
|
22
|
-
import {
|
|
22
|
+
import {
|
|
23
|
+
createOrUpdate as createTileCoord,
|
|
24
|
+
getCacheKey,
|
|
25
|
+
} from '../../tilecoord.js';
|
|
23
26
|
import {
|
|
24
27
|
apply as applyTransform,
|
|
25
28
|
compose as composeTransform,
|
|
@@ -27,18 +30,6 @@ import {
|
|
|
27
30
|
import {getUid} from '../../util.js';
|
|
28
31
|
import CanvasLayerRenderer from './Layer.js';
|
|
29
32
|
|
|
30
|
-
/**
|
|
31
|
-
* @param {import("../../source/Tile.js").default} source The tile source.
|
|
32
|
-
* @param {string} sourceKey The source key.
|
|
33
|
-
* @param {number} z The tile z level.
|
|
34
|
-
* @param {number} x The tile x level.
|
|
35
|
-
* @param {number} y The tile y level.
|
|
36
|
-
* @return {string} The cache key.
|
|
37
|
-
*/
|
|
38
|
-
function getCacheKey(source, sourceKey, z, x, y) {
|
|
39
|
-
return `${getUid(source)},${sourceKey},${getKeyZXY(z, x, y)}`;
|
|
40
|
-
}
|
|
41
|
-
|
|
42
33
|
/**
|
|
43
34
|
* @typedef {Object<number, Set<import("../../Tile.js").default>>} TileLookup
|
|
44
35
|
*/
|
|
@@ -201,6 +192,12 @@ class CanvasTileLayerRenderer extends CanvasLayerRenderer {
|
|
|
201
192
|
*/
|
|
202
193
|
this.tileCache_ = new LRUCache(cacheSize);
|
|
203
194
|
|
|
195
|
+
/**
|
|
196
|
+
* @type {import("../../structs/LRUCache.js").default<import("../../Tile.js").default|null>}
|
|
197
|
+
* @private
|
|
198
|
+
*/
|
|
199
|
+
this.sourceTileCache_ = null;
|
|
200
|
+
|
|
204
201
|
this.maxStaleKeys = cacheSize * 0.5;
|
|
205
202
|
}
|
|
206
203
|
|
|
@@ -211,6 +208,16 @@ class CanvasTileLayerRenderer extends CanvasLayerRenderer {
|
|
|
211
208
|
return this.tileCache_;
|
|
212
209
|
}
|
|
213
210
|
|
|
211
|
+
/**
|
|
212
|
+
* @return {LRUCache} Tile cache.
|
|
213
|
+
*/
|
|
214
|
+
getSourceTileCache() {
|
|
215
|
+
if (!this.sourceTileCache_) {
|
|
216
|
+
this.sourceTileCache_ = new LRUCache(512);
|
|
217
|
+
}
|
|
218
|
+
return this.sourceTileCache_;
|
|
219
|
+
}
|
|
220
|
+
|
|
214
221
|
/**
|
|
215
222
|
* Get a tile from the cache or create one if needed.
|
|
216
223
|
*
|
|
@@ -233,12 +240,17 @@ class CanvasTileLayerRenderer extends CanvasLayerRenderer {
|
|
|
233
240
|
if (tileCache.containsKey(cacheKey)) {
|
|
234
241
|
tile = tileCache.get(cacheKey);
|
|
235
242
|
} else {
|
|
243
|
+
const projection = frameState.viewState.projection;
|
|
244
|
+
const sourceProjection = tileSource.getProjection();
|
|
236
245
|
tile = tileSource.getTile(
|
|
237
246
|
z,
|
|
238
247
|
x,
|
|
239
248
|
y,
|
|
240
249
|
frameState.pixelRatio,
|
|
241
|
-
|
|
250
|
+
projection,
|
|
251
|
+
!sourceProjection || equivalent(sourceProjection, projection)
|
|
252
|
+
? undefined
|
|
253
|
+
: this.getSourceTileCache(),
|
|
242
254
|
);
|
|
243
255
|
if (!tile) {
|
|
244
256
|
return null;
|
|
@@ -370,6 +382,7 @@ class CanvasTileLayerRenderer extends CanvasLayerRenderer {
|
|
|
370
382
|
this.renderedSourceRevision_ = sourceRevision;
|
|
371
383
|
if (this.renderedSourceKey_ === source.getKey()) {
|
|
372
384
|
this.tileCache_.clear();
|
|
385
|
+
this.sourceTileCache_?.clear();
|
|
373
386
|
}
|
|
374
387
|
}
|
|
375
388
|
return true;
|
|
@@ -873,6 +886,7 @@ class CanvasTileLayerRenderer extends CanvasLayerRenderer {
|
|
|
873
886
|
const tilesCount = wantedTiles ? Object.keys(wantedTiles).length : 0;
|
|
874
887
|
this.updateCacheSize(tilesCount);
|
|
875
888
|
this.tileCache_.expireCache();
|
|
889
|
+
this.sourceTileCache_?.expireCache();
|
|
876
890
|
};
|
|
877
891
|
|
|
878
892
|
frameState.postRenderFunctions.push(postRenderFunction);
|
package/source/DataTile.d.ts
CHANGED
|
@@ -232,19 +232,21 @@ declare class DataTileSource<TileType extends import("../Tile.js").default = Dat
|
|
|
232
232
|
* @param {number} y Tile coordinate y.
|
|
233
233
|
* @param {import("../proj/Projection.js").default} targetProj The output projection.
|
|
234
234
|
* @param {import("../proj/Projection.js").default} sourceProj The input projection.
|
|
235
|
+
* @param {import("../structs/LRUCache.js").default<import("../Tile.js").default>} [tileCache] Tile cache.
|
|
235
236
|
* @return {!TileType} Tile.
|
|
236
237
|
*/
|
|
237
|
-
getReprojTile_(z: number, x: number, y: number, targetProj: import("../proj/Projection.js").default, sourceProj: import("../proj/Projection.js").default): TileType;
|
|
238
|
+
getReprojTile_(z: number, x: number, y: number, targetProj: import("../proj/Projection.js").default, sourceProj: import("../proj/Projection.js").default, tileCache?: import("../structs/LRUCache.js").default<import("../Tile.js").default>): TileType;
|
|
238
239
|
/**
|
|
239
240
|
* @param {number} z Tile coordinate z.
|
|
240
241
|
* @param {number} x Tile coordinate x.
|
|
241
242
|
* @param {number} y Tile coordinate y.
|
|
242
243
|
* @param {number} pixelRatio Pixel ratio.
|
|
243
244
|
* @param {import("../proj/Projection.js").default} [projection] Projection.
|
|
245
|
+
* @param {import("../structs/LRUCache.js").default<import("../Tile.js").default>} [tileCache] Tile cache.
|
|
244
246
|
* @return {TileType|null} Tile (or null if outside source extent).
|
|
245
247
|
* @override
|
|
246
248
|
*/
|
|
247
|
-
override getTile(z: number, x: number, y: number, pixelRatio: number, projection?: import("../proj/Projection.js").default): TileType | null;
|
|
249
|
+
override getTile(z: number, x: number, y: number, pixelRatio: number, projection?: import("../proj/Projection.js").default, tileCache?: import("../structs/LRUCache.js").default<import("../Tile.js").default>): TileType | null;
|
|
248
250
|
/**
|
|
249
251
|
* Sets the tile grid to use when reprojecting the tiles to the given
|
|
250
252
|
* projection instead of the default tile grid for the projection.
|
package/source/DataTile.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DataTile.d.ts","sourceRoot":"","sources":["DataTile.js"],"names":[],"mappings":";
|
|
1
|
+
{"version":3,"file":"DataTile.d.ts","sourceRoot":"","sources":["DataTile.js"],"names":[],"mappings":";mCAqBa,WAAW,GAAC,iBAAiB;;;;;YAK5B,WAAW;;;;;;;;;;;;;;;qBASZ,CAAS,IAAM,EAAN,MAAM,EAAE,IAAM,EAAN,MAAM,EAAE,IAAM,EAAN,MAAM,EAAE,IAAa,EAAb,aAAa,KAAI,CAAC,OAAO,gBAAgB,EAAE,IAAI,GAAC,OAAO,CAAC,OAAO,gBAAgB,EAAE,IAAI,CAAC,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAkBvH,OAAO,YAAY,EAAE,cAAc;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAjCjD;;GAEG;AAEH;;;;;;GAMG;AAEH;;;;GAIG;AAEH;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AAEH;;;;;;;;GAQG;AACH,6BAJ6C,QAAQ,SAAxC,OAAQ,YAAY,EAAE,OAAQ;IAKzC;;OAEG;IACH,qBAFW,OAAO,EAsFjB;IAvDC;;;OAGG;IACH,gBAAgE;IAEhE;;;OAGG;IACH,kBAAmE;IAEnE;;;OAGG;IACH,mBAAsB;IAEtB;;;OAGG;IACH,yBAA0B;IAE1B;;OAEG;IACH,gBAA6B;IAiO/B;;;OAGG;IACH,yBAFW,OAAO,oBAAoB,EAAE,OAAO,QAsB9C;IAlPC;;OAEG;IACH,WAFU,MAAM,CAEwD;IAExE;;;OAGG;IACH,+BAAgC;IAEhC;;;OAGG;IACH,qBAAsD;IAEtD;;OAEG;IACH,iBAFU,OAAO,iBAAiB,EAAE,SAAS,GAAC,IAAI,CAEvB;IAG7B;;;;;OAKG;IACH,kCAFW,KAAK,CAAC,OAAO,YAAY,EAAE,IAAI,CAAC,QAI1C;IAED;;;;;;OAMG;IACH,yBAHW,MAAM,GACL,OAAO,YAAY,EAAE,IAAI,CAWpC;IAmBD;;;OAGG;IACH,4BAHW,MAAM,QAKhB;IAED;;;;;;;;OAQG;IACH,kBARW,MAAM,KACN,MAAM,KACN,MAAM,cACN,OAAO,uBAAuB,EAAE,OAAO,cACvC,OAAO,uBAAuB,EAAE,OAAO,cACvC,OAAO,wBAAwB,EAAE,OAAO,CAAC,OAAO,YAAY,EAAE,OAAO,CAAC,GACpE,QAAQ,CA6CpB;IAED;;;;;;;;;OASG;IACH,oBATW,MAAM,KACN,MAAM,KACN,MAAM,cACN,MAAM,eACN,OAAO,uBAAuB,EAAE,OAAO,cACvC,OAAO,wBAAwB,EAAE,OAAO,CAAC,OAAO,YAAY,EAAE,OAAO,CAAC,GACrE,QAAQ,GAAC,IAAI,CA+ExB;IAmDD;;;;;;;;;;;OAWG;IACH,qCAJW,OAAO,YAAY,EAAE,cAAc,YACnC,OAAO,yBAAyB,EAAE,OAAO,QAWnD;CACF;qBA7aoB,gBAAgB;uBAcK,WAAW"}
|
package/source/DataTile.js
CHANGED
|
@@ -8,6 +8,7 @@ import {toPromise} from '../functions.js';
|
|
|
8
8
|
import {equivalent, get as getProjection} from '../proj.js';
|
|
9
9
|
import ReprojDataTile from '../reproj/DataTile.js';
|
|
10
10
|
import {toSize} from '../size.js';
|
|
11
|
+
import {getCacheKey} from '../tilecoord.js';
|
|
11
12
|
import {
|
|
12
13
|
createXYZ,
|
|
13
14
|
extentFromProjection,
|
|
@@ -223,9 +224,10 @@ class DataTileSource extends TileSource {
|
|
|
223
224
|
* @param {number} y Tile coordinate y.
|
|
224
225
|
* @param {import("../proj/Projection.js").default} targetProj The output projection.
|
|
225
226
|
* @param {import("../proj/Projection.js").default} sourceProj The input projection.
|
|
227
|
+
* @param {import("../structs/LRUCache.js").default<import("../Tile.js").default>} [tileCache] Tile cache.
|
|
226
228
|
* @return {!TileType} Tile.
|
|
227
229
|
*/
|
|
228
|
-
getReprojTile_(z, x, y, targetProj, sourceProj) {
|
|
230
|
+
getReprojTile_(z, x, y, targetProj, sourceProj, tileCache) {
|
|
229
231
|
const sourceTileGrid =
|
|
230
232
|
this.tileGrid || this.getTileGridForProjection(sourceProj || targetProj);
|
|
231
233
|
const reprojTilePixelRatio = Math.max.apply(
|
|
@@ -258,7 +260,7 @@ class DataTileSource extends TileSource {
|
|
|
258
260
|
pixelRatio: reprojTilePixelRatio,
|
|
259
261
|
gutter: this.gutter_,
|
|
260
262
|
getTileFunction: (z, x, y, pixelRatio) =>
|
|
261
|
-
this.getTile(z, x, y, pixelRatio),
|
|
263
|
+
this.getTile(z, x, y, pixelRatio, undefined, tileCache),
|
|
262
264
|
transformMatrix: this.transformMatrix,
|
|
263
265
|
},
|
|
264
266
|
/** @type {import("../reproj/DataTile.js").Options} */ (this.tileOptions),
|
|
@@ -276,17 +278,25 @@ class DataTileSource extends TileSource {
|
|
|
276
278
|
* @param {number} y Tile coordinate y.
|
|
277
279
|
* @param {number} pixelRatio Pixel ratio.
|
|
278
280
|
* @param {import("../proj/Projection.js").default} [projection] Projection.
|
|
281
|
+
* @param {import("../structs/LRUCache.js").default<import("../Tile.js").default>} [tileCache] Tile cache.
|
|
279
282
|
* @return {TileType|null} Tile (or null if outside source extent).
|
|
280
283
|
* @override
|
|
281
284
|
*/
|
|
282
|
-
getTile(z, x, y, pixelRatio, projection) {
|
|
285
|
+
getTile(z, x, y, pixelRatio, projection, tileCache) {
|
|
283
286
|
const sourceProjection = this.getProjection();
|
|
284
287
|
if (
|
|
285
288
|
projection &&
|
|
286
289
|
((sourceProjection && !equivalent(sourceProjection, projection)) ||
|
|
287
290
|
this.transformMatrix)
|
|
288
291
|
) {
|
|
289
|
-
return this.getReprojTile_(
|
|
292
|
+
return this.getReprojTile_(
|
|
293
|
+
z,
|
|
294
|
+
x,
|
|
295
|
+
y,
|
|
296
|
+
projection,
|
|
297
|
+
sourceProjection,
|
|
298
|
+
tileCache,
|
|
299
|
+
);
|
|
290
300
|
}
|
|
291
301
|
|
|
292
302
|
const size = this.getTileSize(z);
|
|
@@ -308,6 +318,12 @@ class DataTileSource extends TileSource {
|
|
|
308
318
|
return null;
|
|
309
319
|
}
|
|
310
320
|
|
|
321
|
+
const key = this.getKey();
|
|
322
|
+
const cacheKey = getCacheKey(this, key, z, x, y);
|
|
323
|
+
if (tileCache && tileCache.containsKey(cacheKey)) {
|
|
324
|
+
return /** @type {TileType} */ (tileCache.get(cacheKey));
|
|
325
|
+
}
|
|
326
|
+
|
|
311
327
|
const requestZ = tileCoord[0];
|
|
312
328
|
const requestX = tileCoord[1];
|
|
313
329
|
const requestY = tileCoord[2];
|
|
@@ -340,6 +356,7 @@ class DataTileSource extends TileSource {
|
|
|
340
356
|
tile.key = this.getKey();
|
|
341
357
|
tile.addEventListener(EventType.CHANGE, this.handleTileChange_);
|
|
342
358
|
|
|
359
|
+
tileCache?.set(cacheKey, tile);
|
|
343
360
|
return tile;
|
|
344
361
|
}
|
|
345
362
|
|
package/source/Tile.d.ts
CHANGED
|
@@ -180,9 +180,10 @@ declare class TileSource<TileType extends import("../Tile.js").default = import(
|
|
|
180
180
|
* @param {number} y Tile coordinate y.
|
|
181
181
|
* @param {number} pixelRatio Pixel ratio.
|
|
182
182
|
* @param {import("../proj/Projection.js").default} projection Projection.
|
|
183
|
+
* @param {import("../structs/LRUCache.js").default<import("../Tile.js").default>} [tileCache] Tile cache.
|
|
183
184
|
* @return {TileType|null} Tile.
|
|
184
185
|
*/
|
|
185
|
-
getTile(z: number, x: number, y: number, pixelRatio: number, projection: import("../proj/Projection.js").default): TileType | null;
|
|
186
|
+
getTile(z: number, x: number, y: number, pixelRatio: number, projection: import("../proj/Projection.js").default, tileCache?: import("../structs/LRUCache.js").default<import("../Tile.js").default>): TileType | null;
|
|
186
187
|
/**
|
|
187
188
|
* Return the tile grid of the tile source.
|
|
188
189
|
* @return {import("../tilegrid/TileGrid.js").default|null} Tile grid.
|
package/source/Tile.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Tile.d.ts","sourceRoot":"","sources":["Tile.js"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"Tile.d.ts","sourceRoot":"","sources":["Tile.js"],"names":[],"mappings":"AA4QA;;;;GAIG;AACH;IACE;;;OAGG;IACH,kBAHW,MAAM,QACN,OAAO,YAAY,EAAE,OAAO,EAWtC;IANC;;;;OAIG;IACH,MAHU,OAAO,YAAY,EAAE,OAAO,CAGtB;CAEnB;;;;;kCAlRY,MAAM,IACN,OAAO,eAAe,EAAE,WAAW,CAAC,OAAO,eAAe,EAAE,UAAU,EAAE,OAAO,oBAAoB,EAAE,OAAO,EAAE,MAAM,CAAC,GACjI,OAAW,eAAe,EAAE,WAAW,CAAC,OAAO,oBAAoB,EAAE,KAAK,EAAE,OAAO,WAAW,EAAE,WAAW,EAAE,MAAM,CAAC,GACpH,OAAW,eAAe,EAAE,WAAW,CAAC,OAAO,iBAAiB,EAAE,oBAAoB,EAAE,eAAe,EAAE,MAAM,CAAC,GAChH,OAAW,eAAe,EAAE,mBAAmB,CAAC,OAAO,eAAe,EAAE,UAAU,GAAC,OAAO,oBAAoB,EAAE,KAAK,GACrH,OAAa,iBAAiB,EAAE,oBAAoB,EAAE,MAAM,CAAC;;;;;;;;;;;;;;;;;;;;;iBAShD,OAAO,YAAY,EAAE,cAAc;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;kBAzB/B,oBAAoB;AAUtC;;;;;;;GAOG;AAEH;;;;;;;;;;;;;;;GAeG;AAEH;;;;;;;;;GASG;AACH,yBAJ6C,QAAQ,SAAxC,OAAQ,YAAY,EAAE,OAAQ;IAKzC;;OAEG;IACH,qBAFW,OAAO,EA0EjB;IA9DC;;OAEG;IACH,IAFU,qBAAqB,CAAC,OAAO,WAAW,EAAE,SAAS,CAAC,CAEvD;IAEP;;OAEG;IACH,MAFU,qBAAqB,CAAC,OAAO,WAAW,EAAE,SAAS,CAAC,CAErD;IAET;;OAEG;IACH,IAFU,qBAAqB,CAAC,IAAI,CAAC,CAE9B;IAEP;;;OAGG;IACH,wBACmE;IAEnE;;;OAGG;IACH,oBAHU,OAAO,yBAAyB,EAAE,OAAO,GAAC,IAAI,CAGgB;IAOxE;;;OAGG;IACH,mBAFU,OAAO,YAAY,EAAE,IAAI,CAEd;IAErB;;;OAGG;IACH,aAAuC;IAEvC;;;OAGG;IACH,uBAFU,OAAO,YAAY,EAAE,OAAO,CAKrC;IAED;;;;;;OAMG;IACH,YAFU,MAAM,GAAC,OAAO,aAAa,EAAE,wBAAwB,CAEF;IAG/D;;;OAGG;IACH,mCAHW,OAAO,uBAAuB,EAAE,OAAO,GACtC,MAAM,CAIjB;IAED;;;OAGG;IACH,UAFY,MAAM,CAIjB;IAED;;;;OAIG;IACH,sBAHW,MAAM,QAQhB;IAiBD;;;;;;;;;OASG;IACH,WARW,MAAM,KACN,MAAM,KACN,MAAM,cACN,MAAM,cACN,OAAO,uBAAuB,EAAE,OAAO,cACvC,OAAO,wBAAwB,EAAE,OAAO,CAAC,OAAO,YAAY,EAAE,OAAO,CAAC,GACrE,QAAQ,GAAC,IAAI,CAIxB;IAED;;;;OAIG;IACH,eAHY,OAAO,yBAAyB,EAAE,OAAO,GAAC,IAAI,CAKzD;IAED;;;OAGG;IACH,qCAHW,OAAO,uBAAuB,EAAE,OAAO,GACtC,OAAQ,yBAAyB,EAAE,OAAO,CAOrD;IAED;;;;;;OAMG;IACH,8BAHW,MAAM,GACL,MAAM,CAIjB;IAED;;;;;OAKG;IACH,oBALW,MAAM,cACN,MAAM,cACN,OAAO,uBAAuB,EAAE,OAAO,GACtC,OAAO,YAAY,EAAE,IAAI,CAUpC;IAED;;;;;;;;OAQG;IACH,0CALW,OAAO,iBAAiB,EAAE,SAAS,eACnC,OAAO,uBAAuB,EAAE,OAAO,GACtC,OAAO,iBAAiB,EAAE,SAAS,CAc9C;IAED;;;OAGG;IACH,cAAU;CASX;mBA/PkB,aAAa"}
|
package/source/Tile.js
CHANGED
|
@@ -175,9 +175,10 @@ class TileSource extends Source {
|
|
|
175
175
|
* @param {number} y Tile coordinate y.
|
|
176
176
|
* @param {number} pixelRatio Pixel ratio.
|
|
177
177
|
* @param {import("../proj/Projection.js").default} projection Projection.
|
|
178
|
+
* @param {import("../structs/LRUCache.js").default<import("../Tile.js").default>} [tileCache] Tile cache.
|
|
178
179
|
* @return {TileType|null} Tile.
|
|
179
180
|
*/
|
|
180
|
-
getTile(z, x, y, pixelRatio, projection) {
|
|
181
|
+
getTile(z, x, y, pixelRatio, projection, tileCache) {
|
|
181
182
|
return abstract();
|
|
182
183
|
}
|
|
183
184
|
|
package/source/TileImage.d.ts
CHANGED
|
@@ -207,20 +207,22 @@ declare class TileImage extends UrlTile {
|
|
|
207
207
|
* @param {number} y Tile coordinate y.
|
|
208
208
|
* @param {number} pixelRatio Pixel ratio.
|
|
209
209
|
* @param {import("../proj/Projection.js").default} projection Projection.
|
|
210
|
+
* @param {import("../structs/LRUCache.js").default<import("../Tile.js").default>} [tileCache] Tile cache.
|
|
210
211
|
* @return {!(ImageTile|ReprojTile)} Tile.
|
|
211
212
|
* @override
|
|
212
213
|
*/
|
|
213
|
-
override getTile(z: number, x: number, y: number, pixelRatio: number, projection: import("../proj/Projection.js").default): (ImageTile | ReprojTile);
|
|
214
|
+
override getTile(z: number, x: number, y: number, pixelRatio: number, projection: import("../proj/Projection.js").default, tileCache?: import("../structs/LRUCache.js").default<import("../Tile.js").default>): (ImageTile | ReprojTile);
|
|
214
215
|
/**
|
|
215
216
|
* @param {number} z Tile coordinate z.
|
|
216
217
|
* @param {number} x Tile coordinate x.
|
|
217
218
|
* @param {number} y Tile coordinate y.
|
|
218
219
|
* @param {number} pixelRatio Pixel ratio.
|
|
219
220
|
* @param {!import("../proj/Projection.js").default} projection Projection.
|
|
221
|
+
* @param {import("../structs/LRUCache.js").default<import("../Tile.js").default>} [tileCache] Tile cache.
|
|
220
222
|
* @return {!ImageTile} Tile.
|
|
221
223
|
* @protected
|
|
222
224
|
*/
|
|
223
|
-
protected getTileInternal(z: number, x: number, y: number, pixelRatio: number, projection: import("../proj/Projection.js").default): ImageTile;
|
|
225
|
+
protected getTileInternal(z: number, x: number, y: number, pixelRatio: number, projection: import("../proj/Projection.js").default, tileCache?: import("../structs/LRUCache.js").default<import("../Tile.js").default>): ImageTile;
|
|
224
226
|
/**
|
|
225
227
|
* Sets whether to render reprojection edges or not (usually for debugging).
|
|
226
228
|
* @param {boolean} render Render the edges.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TileImage.d.ts","sourceRoot":"","sources":["TileImage.js"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"TileImage.d.ts","sourceRoot":"","sources":["TileImage.js"],"names":[],"mappings":"AAiUA;;;GAGG;AACH,mDAHW,SAAS,OACT,MAAM,QAmDhB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBA9Va,OAAO,YAAY,EAAE,cAAc;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;sBArB3B,iBAAiB;AAWvC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2CG;AAEH;;;;;GAKG;AACH;IACE;;OAEG;IACH,qBAFY,OAAO,EAwDlB;IA/BC;;;OAGG;IACH,uBAFW,MAAM,OAAA,CAG+C;IAEhE;;;OAGG;IACH,qBAFU,OAAO,SAAS,CAGuC;IAEjE;;;OAGG;IACH,iCAFU;YAAQ,MAAM,GAAE,OAAO,yBAAyB,EAAE,OAAO;KAAC,CAErC;IAE/B;;;OAGG;IACH,oCAAqE;IAErE;;;OAGG;IACH,iCAAqC;IAmBvC;;OAEG;IACH,aAFY,MAAM,CAIjB;IAiCD;;;;;;;;;OASG;IACH,oBAoBC;IAED;;;;;;;;;OASG;IACH,oBATW,MAAM,KACN,MAAM,KACN,MAAM,cACN,MAAM,cACN,OAAO,uBAAuB,EAAE,OAAO,cACvC,OAAO,wBAAwB,EAAE,OAAO,CAAC,OAAO,YAAY,EAAE,OAAO,CAAC,GACrE,CAAE,SAAS,GAAC,UAAU,CAAC,CA2ClC;IAED;;;;;;;;;OASG;IACH,6BATW,MAAM,KACN,MAAM,KACN,MAAM,cACN,MAAM,cACN,OAAQ,uBAAuB,EAAE,OAAO,cACxC,OAAO,wBAAwB,EAAE,OAAO,CAAC,OAAO,YAAY,EAAE,OAAO,CAAC,GACpE,SAAS,CAarB;IAED;;;;OAIG;IACH,mCAHW,OAAO,QASjB;IAED;;;;;;;;;;;OAWG;IACH,qCAJW,OAAO,YAAY,EAAE,cAAc,YACnC,OAAO,yBAAyB,EAAE,OAAO,QAWnD;CACF;oBAnTmB,cAAc;uBAJX,mBAAmB"}
|
package/source/TileImage.js
CHANGED
|
@@ -7,6 +7,7 @@ import EventType from '../events/EventType.js';
|
|
|
7
7
|
import {WORKER_OFFSCREEN_CANVAS} from '../has.js';
|
|
8
8
|
import {equivalent, get as getProjection} from '../proj.js';
|
|
9
9
|
import ReprojTile from '../reproj/Tile.js';
|
|
10
|
+
import {getCacheKey} from '../tilecoord.js';
|
|
10
11
|
import {getForProjection as getTileGridForProjection} from '../tilegrid.js';
|
|
11
12
|
import {getUid} from '../util.js';
|
|
12
13
|
import UrlTile from './UrlTile.js';
|
|
@@ -214,10 +215,11 @@ class TileImage extends UrlTile {
|
|
|
214
215
|
* @param {number} y Tile coordinate y.
|
|
215
216
|
* @param {number} pixelRatio Pixel ratio.
|
|
216
217
|
* @param {import("../proj/Projection.js").default} projection Projection.
|
|
218
|
+
* @param {import("../structs/LRUCache.js").default<import("../Tile.js").default>} [tileCache] Tile cache.
|
|
217
219
|
* @return {!(ImageTile|ReprojTile)} Tile.
|
|
218
220
|
* @override
|
|
219
221
|
*/
|
|
220
|
-
getTile(z, x, y, pixelRatio, projection) {
|
|
222
|
+
getTile(z, x, y, pixelRatio, projection, tileCache) {
|
|
221
223
|
const sourceProjection = this.getProjection();
|
|
222
224
|
if (
|
|
223
225
|
!sourceProjection ||
|
|
@@ -250,7 +252,7 @@ class TileImage extends UrlTile {
|
|
|
250
252
|
this.getTilePixelRatio(pixelRatio),
|
|
251
253
|
this.getGutter(),
|
|
252
254
|
(z, x, y, pixelRatio) =>
|
|
253
|
-
this.getTileInternal(z, x, y, pixelRatio, sourceProjection),
|
|
255
|
+
this.getTileInternal(z, x, y, pixelRatio, sourceProjection, tileCache),
|
|
254
256
|
this.reprojectionErrorThreshold_,
|
|
255
257
|
this.renderReprojectionEdges_,
|
|
256
258
|
this.tileOptions,
|
|
@@ -265,12 +267,20 @@ class TileImage extends UrlTile {
|
|
|
265
267
|
* @param {number} y Tile coordinate y.
|
|
266
268
|
* @param {number} pixelRatio Pixel ratio.
|
|
267
269
|
* @param {!import("../proj/Projection.js").default} projection Projection.
|
|
270
|
+
* @param {import("../structs/LRUCache.js").default<import("../Tile.js").default>} [tileCache] Tile cache.
|
|
268
271
|
* @return {!ImageTile} Tile.
|
|
269
272
|
* @protected
|
|
270
273
|
*/
|
|
271
|
-
getTileInternal(z, x, y, pixelRatio, projection) {
|
|
274
|
+
getTileInternal(z, x, y, pixelRatio, projection, tileCache) {
|
|
272
275
|
const key = this.getKey();
|
|
273
|
-
|
|
276
|
+
const cacheKey = getCacheKey(this, key, z, x, y);
|
|
277
|
+
if (tileCache && tileCache.containsKey(cacheKey)) {
|
|
278
|
+
const tile = /** @type {!ImageTile} */ (tileCache.get(cacheKey));
|
|
279
|
+
return tile;
|
|
280
|
+
}
|
|
281
|
+
const tile = this.createTile_(z, x, y, pixelRatio, projection, key);
|
|
282
|
+
tileCache?.set(cacheKey, tile);
|
|
283
|
+
return tile;
|
|
274
284
|
}
|
|
275
285
|
|
|
276
286
|
/**
|
package/tilecoord.d.ts
CHANGED
|
@@ -1,6 +1,3 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @module ol/tilecoord
|
|
3
|
-
*/
|
|
4
1
|
/**
|
|
5
2
|
* An array of three numbers representing the location of a tile in a tile
|
|
6
3
|
* grid. The order is `z` (zoom level), `x` (column), and `y` (row).
|
|
@@ -34,6 +31,15 @@ export function getKey(tileCoord: TileCoord): string;
|
|
|
34
31
|
* @return {string} The cache key.
|
|
35
32
|
*/
|
|
36
33
|
export function getCacheKeyForTileKey(tileKey: string): string;
|
|
34
|
+
/**
|
|
35
|
+
* @param {import("./source/Tile.js").default} source The tile source.
|
|
36
|
+
* @param {string} sourceKey The source key.
|
|
37
|
+
* @param {number} z The tile z level.
|
|
38
|
+
* @param {number} x The tile x level.
|
|
39
|
+
* @param {number} y The tile y level.
|
|
40
|
+
* @return {string} The cache key.
|
|
41
|
+
*/
|
|
42
|
+
export function getCacheKey(source: import("./source/Tile.js").default, sourceKey: string, z: number, x: number, y: number): string;
|
|
37
43
|
/**
|
|
38
44
|
* Get a tile coord given a key.
|
|
39
45
|
* @param {string} key The tile coord key.
|
package/tilecoord.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tilecoord.d.ts","sourceRoot":"","sources":["tilecoord.js"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"tilecoord.d.ts","sourceRoot":"","sources":["tilecoord.js"],"names":[],"mappings":"AAMA;;;;;GAKG;AAEH;;;;;;GAMG;AACH,kCANW,MAAM,KACN,MAAM,KACN,MAAM,cACN,SAAS,GACR,SAAS,CAUpB;AAED;;;;;GAKG;AACH,6BALW,MAAM,KACN,MAAM,KACN,MAAM,GACL,MAAM,CAIjB;AAED;;;;GAIG;AACH,kCAHW,SAAS,GACR,MAAM,CAIjB;AAED;;;;GAIG;AACH,+CAHW,MAAM,GACL,MAAM,CAQjB;AAED;;;;;;;GAOG;AACH,oCAPW,OAAO,kBAAkB,EAAE,OAAO,aAClC,MAAM,KACN,MAAM,KACN,MAAM,KACN,MAAM,GACL,MAAM,CAIjB;AAED;;;;GAIG;AACH,6BAHW,MAAM,GACL,SAAS,CAIpB;AAED;;;GAGG;AACH,gCAHW,SAAS,GACR,MAAM,CAIjB;AAED;;;;;GAKG;AACH,2BALW,MAAM,KACN,MAAM,KACN,MAAM,GACL,MAAM,CAIjB;AAED;;;;GAIG;AACH,4CAJW,SAAS,YACT,OAAQ,wBAAwB,EAAE,OAAO,GACxC,OAAO,CAelB;;;;;wBA9GY,KAAK,CAAC,MAAM,CAAC"}
|
package/tilecoord.js
CHANGED
|
@@ -2,6 +2,8 @@
|
|
|
2
2
|
* @module ol/tilecoord
|
|
3
3
|
*/
|
|
4
4
|
|
|
5
|
+
import {getUid} from './util.js';
|
|
6
|
+
|
|
5
7
|
/**
|
|
6
8
|
* An array of three numbers representing the location of a tile in a tile
|
|
7
9
|
* grid. The order is `z` (zoom level), `x` (column), and `y` (row).
|
|
@@ -58,6 +60,18 @@ export function getCacheKeyForTileKey(tileKey) {
|
|
|
58
60
|
return getKeyZXY(z, x, y);
|
|
59
61
|
}
|
|
60
62
|
|
|
63
|
+
/**
|
|
64
|
+
* @param {import("./source/Tile.js").default} source The tile source.
|
|
65
|
+
* @param {string} sourceKey The source key.
|
|
66
|
+
* @param {number} z The tile z level.
|
|
67
|
+
* @param {number} x The tile x level.
|
|
68
|
+
* @param {number} y The tile y level.
|
|
69
|
+
* @return {string} The cache key.
|
|
70
|
+
*/
|
|
71
|
+
export function getCacheKey(source, sourceKey, z, x, y) {
|
|
72
|
+
return `${getUid(source)},${sourceKey},${getKeyZXY(z, x, y)}`;
|
|
73
|
+
}
|
|
74
|
+
|
|
61
75
|
/**
|
|
62
76
|
* Get a tile coord given a key.
|
|
63
77
|
* @param {string} key The tile coord key.
|
package/util.js
CHANGED