ol 10.6.2-dev.1762247690670 → 10.7.0

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.
@@ -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("../DataTile.js").default | import("../ImageTile.js").default> | undefined;
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("../DataTile.js").default | import("../ImageTile.js").default>[] | ((arg0: import("../extent.js").Extent, arg1: number) => Array<SourceType>) | undefined;
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("../DataTile.js").default | import("../ImageTile.js").default>, WebGLTileLayerRenderer<any>> {
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
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "ol",
3
- "version": "10.6.2-dev.1762247690670",
3
+ "version": "10.7.0",
4
4
  "description": "OpenLayers mapping library",
5
5
  "keywords": [
6
6
  "map",
@@ -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":";;;;;;;;;;AA2GA;;;GAGG;AAEH;;;;;;GAMG;AACH,sCAHkG,SAAS,SAA7F,OAAO,qBAAqB,EAAE,OAAO,GAAC,OAAO,2BAA2B,EAAE,OAAQ;IAI9F;;;OAGG;IACH,uBAHW,SAAS,YACT,OAAO,EAkFjB;IA3EC;;;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;IAK3C;;OAEG;IACH,8BAEC;IAED;;;;;;;;;OASG;IACH,6BAPW,MAAM,KACN,MAAM,KACN,MAAM,cACN,OAAO,cAAc,EAAE,UAAU,GAChC,OAAO,eAAe,EAAE,OAAO,GAAC,IAAI,CA4B/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;IAgCD;;;;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,CA6TtB;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;gCAh8B+B,YAAY;qBAPvB,2BAA2B"}
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 {createOrUpdate as createTileCoord, getKeyZXY} from '../../tilecoord.js';
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
- frameState.viewState.projection,
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);
@@ -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.
@@ -1 +1 @@
1
- {"version":3,"file":"DataTile.d.ts","sourceRoot":"","sources":["DataTile.js"],"names":[],"mappings":";mCAoBa,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;IAiN/B;;;OAGG;IACH,yBAFW,OAAO,oBAAoB,EAAE,OAAO,QAsB9C;IAlOC;;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;;;;;;;OAOG;IACH,kBAPW,MAAM,KACN,MAAM,KACN,MAAM,cACN,OAAO,uBAAuB,EAAE,OAAO,cACvC,OAAO,uBAAuB,EAAE,OAAO,GACrC,QAAQ,CA6CpB;IAED;;;;;;;;OAQG;IACH,oBARW,MAAM,KACN,MAAM,KACN,MAAM,cACN,MAAM,eACN,OAAO,uBAAuB,EAAE,OAAO,GACtC,QAAQ,GAAC,IAAI,CAiExB;IAmDD;;;;;;;;;;;OAWG;IACH,qCAJW,OAAO,YAAY,EAAE,cAAc,YACnC,OAAO,yBAAyB,EAAE,OAAO,QAWnD;CACF;qBA5ZoB,gBAAgB;uBAaK,WAAW"}
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"}
@@ -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_(z, x, y, projection, sourceProjection);
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.
@@ -1 +1 @@
1
- {"version":3,"file":"Tile.d.ts","sourceRoot":"","sources":["Tile.js"],"names":[],"mappings":"AA2QA;;;;GAIG;AACH;IACE;;;OAGG;IACH,kBAHW,MAAM,QACN,OAAO,YAAY,EAAE,OAAO,EAWtC;IANC;;;;OAIG;IACH,MAHU,OAAO,YAAY,EAAE,OAAO,CAGtB;CAEnB;;;;;kCAjRY,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;;;;;;;;OAQG;IACH,WAPW,MAAM,KACN,MAAM,KACN,MAAM,cACN,MAAM,cACN,OAAO,uBAAuB,EAAE,OAAO,GACtC,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;mBA9PkB,aAAa"}
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
 
@@ -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":"AAuTA;;;GAGG;AACH,mDAHW,SAAS,OACT,MAAM,QAmDhB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBArVa,OAAO,YAAY,EAAE,cAAc;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;sBApB3B,iBAAiB;AAUvC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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;;;;;;;;OAQG;IACH,oBARW,MAAM,KACN,MAAM,KACN,MAAM,cACN,MAAM,cACN,OAAO,uBAAuB,EAAE,OAAO,GACtC,CAAE,SAAS,GAAC,UAAU,CAAC,CA2ClC;IAED;;;;;;;;OAQG;IACH,6BARW,MAAM,KACN,MAAM,KACN,MAAM,cACN,MAAM,cACN,OAAQ,uBAAuB,EAAE,OAAO,GACtC,SAAS,CAMrB;IAED;;;;OAIG;IACH,mCAHW,OAAO,QASjB;IAED;;;;;;;;;;;OAWG;IACH,qCAJW,OAAO,YAAY,EAAE,cAAc,YACnC,OAAO,yBAAyB,EAAE,OAAO,QAWnD;CACF;oBA1SmB,cAAc;uBAHX,mBAAmB"}
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"}
@@ -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
- return this.createTile_(z, x, y, pixelRatio, projection, key);
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.
@@ -1 +1 @@
1
- {"version":3,"file":"tilecoord.d.ts","sourceRoot":"","sources":["tilecoord.js"],"names":[],"mappings":"AAAA;;GAEG;AAEH;;;;;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;;;;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;;;;;wBAlGY,KAAK,CAAC,MAAM,CAAC"}
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.d.ts.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"util.d.ts","sourceRoot":"","sources":["util.js"],"names":[],"mappings":"AAAA;;GAEG;AAEH;;GAEG;AACH,4BAFY,KAAK,CAIhB;AASD;;;;;;;;GAQG;AACH,kCAHY,MAAM,CAKjB;AAED;;;GAGG;AACH,sBAFU,MAAM,CAEkC"}
1
+ {"version":3,"file":"util.d.ts","sourceRoot":"","sources":["util.js"],"names":[],"mappings":"AAAA;;GAEG;AAEH;;GAEG;AACH,4BAFY,KAAK,CAIhB;AASD;;;;;;;;GAQG;AACH,kCAHY,MAAM,CAKjB;AAED;;;GAGG;AACH,sBAFU,MAAM,CAEgB"}
package/util.js CHANGED
@@ -33,4 +33,4 @@ export function getUid(obj) {
33
33
  * OpenLayers version.
34
34
  * @type {string}
35
35
  */
36
- export const VERSION = '10.6.2-dev.1762247690670';
36
+ export const VERSION = '10.7.0';