ol 6.12.1-dev.1642423977028 → 6.12.1-dev.1642932717618

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.
Files changed (46) hide show
  1. package/layer/Base.d.ts.map +1 -1
  2. package/layer/Base.js +0 -1
  3. package/layer/Base.js.map +1 -1
  4. package/layer/Layer.d.ts +7 -3
  5. package/layer/Layer.d.ts.map +1 -1
  6. package/layer/Layer.js +7 -1
  7. package/layer/Layer.js.map +1 -1
  8. package/layer/WebGLTile.d.ts +31 -0
  9. package/layer/WebGLTile.d.ts.map +1 -1
  10. package/layer/WebGLTile.js +106 -0
  11. package/layer/WebGLTile.js.map +1 -1
  12. package/package.json +1 -1
  13. package/renderer/Composite.d.ts.map +1 -1
  14. package/renderer/Composite.js +4 -3
  15. package/renderer/Composite.js.map +1 -1
  16. package/renderer/webgl/Layer.js +1 -1
  17. package/renderer/webgl/Layer.js.map +1 -1
  18. package/renderer/webgl/TileLayer.d.ts +5 -0
  19. package/renderer/webgl/TileLayer.d.ts.map +1 -1
  20. package/renderer/webgl/TileLayer.js +21 -10
  21. package/renderer/webgl/TileLayer.js.map +1 -1
  22. package/source.d.ts +13 -0
  23. package/source.d.ts.map +1 -1
  24. package/source.js +35 -0
  25. package/source.js.map +1 -1
  26. package/src/layer/Base.js +0 -1
  27. package/src/layer/Layer.js +8 -1
  28. package/src/layer/WebGLTile.js +113 -0
  29. package/src/renderer/Composite.js +5 -3
  30. package/src/renderer/webgl/Layer.js +1 -1
  31. package/src/renderer/webgl/TileLayer.js +22 -10
  32. package/src/source.js +37 -0
  33. package/src/structs/LRUCache.js +10 -0
  34. package/src/style/literal.js +1 -0
  35. package/src/webgl/ShaderBuilder.js +2 -0
  36. package/structs/LRUCache.d.ts +7 -0
  37. package/structs/LRUCache.d.ts.map +1 -1
  38. package/structs/LRUCache.js +9 -0
  39. package/structs/LRUCache.js.map +1 -1
  40. package/style/literal.d.ts +4 -0
  41. package/style/literal.js +1 -0
  42. package/style/literal.js.map +1 -1
  43. package/util.js +1 -1
  44. package/webgl/ShaderBuilder.d.ts.map +1 -1
  45. package/webgl/ShaderBuilder.js +2 -0
  46. package/webgl/ShaderBuilder.js.map +1 -1
@@ -27,7 +27,7 @@ import { AttributeType } from '../../webgl/Helper.js';
27
27
  import { ELEMENT_ARRAY_BUFFER, STATIC_DRAW } from '../../webgl.js';
28
28
  import { compose as composeTransform, create as createTransform, } from '../../transform.js';
29
29
  import { create as createMat4, fromTransform as mat4FromTransform, } from '../../vec/mat4.js';
30
- import { createOrUpdate as createTileCoord, getKeyZXY, getKey as getTileCoordKey, } from '../../tilecoord.js';
30
+ import { createOrUpdate as createTileCoord, getKey as getTileCoordKey, } from '../../tilecoord.js';
31
31
  import { fromUserExtent } from '../../proj.js';
32
32
  import { getIntersection } from '../../extent.js';
33
33
  import { getUid } from '../../util.js';
@@ -93,7 +93,7 @@ function getRenderExtent(frameState, extent) {
93
93
  extent = getIntersection(extent, fromUserExtent(layerState.extent, frameState.viewState.projection));
94
94
  }
95
95
  var source =
96
- /** {import("../../source/Tile.js").default} */ layerState.layer.getSource();
96
+ /** {import("../../source/Tile.js").default} */ layerState.layer.getRenderSource();
97
97
  if (!source.getWrapX()) {
98
98
  var gridExtent = source
99
99
  .getTileGridForProjection(frameState.viewState.projection)
@@ -104,6 +104,9 @@ function getRenderExtent(frameState, extent) {
104
104
  }
105
105
  return extent;
106
106
  }
107
+ function getCacheKey(source, tileCoord) {
108
+ return source.getKey() + "," + getTileCoordKey(tileCoord);
109
+ }
107
110
  /**
108
111
  * @typedef {Object} Options
109
112
  * @property {string} vertexShader Vertex shader source.
@@ -132,6 +135,11 @@ var WebGLTileLayerRenderer = /** @class */ (function (_super) {
132
135
  var _this = _super.call(this, tileLayer, {
133
136
  uniforms: options.uniforms,
134
137
  }) || this;
138
+ /**
139
+ * The last call to `renderFrame` was completed with all tiles loaded
140
+ * @type {boolean}
141
+ */
142
+ _this.renderComplete = false;
135
143
  /**
136
144
  * This transform converts tile i, j coordinates to screen coordinates.
137
145
  * @type {import("../../transform.js").Transform}
@@ -241,7 +249,7 @@ var WebGLTileLayerRenderer = /** @class */ (function (_super) {
241
249
  */
242
250
  WebGLTileLayerRenderer.prototype.prepareFrameInternal = function (frameState) {
243
251
  var layer = this.getLayer();
244
- var source = layer.getSource();
252
+ var source = layer.getRenderSource();
245
253
  if (!source) {
246
254
  return false;
247
255
  }
@@ -259,7 +267,7 @@ var WebGLTileLayerRenderer = /** @class */ (function (_super) {
259
267
  WebGLTileLayerRenderer.prototype.enqueueTiles = function (frameState, extent, z, tileTexturesByZ) {
260
268
  var viewState = frameState.viewState;
261
269
  var tileLayer = this.getLayer();
262
- var tileSource = tileLayer.getSource();
270
+ var tileSource = tileLayer.getRenderSource();
263
271
  var tileGrid = tileSource.getTileGridForProjection(viewState.projection);
264
272
  var tileTextureCache = this.tileTextureCache_;
265
273
  var tileRange = tileGrid.getTileRangeForExtentAndZ(extent, z, this.tempTileRange_);
@@ -272,7 +280,7 @@ var WebGLTileLayerRenderer = /** @class */ (function (_super) {
272
280
  for (var x = tileRange.minX; x <= tileRange.maxX; ++x) {
273
281
  for (var y = tileRange.minY; y <= tileRange.maxY; ++y) {
274
282
  var tileCoord = createTileCoord(z, x, y, this.tempTileCoord_);
275
- var tileCoordKey = getTileCoordKey(tileCoord);
283
+ var cacheKey = getCacheKey(tileSource, tileCoord);
276
284
  /**
277
285
  * @type {TileTexture}
278
286
  */
@@ -281,15 +289,15 @@ var WebGLTileLayerRenderer = /** @class */ (function (_super) {
281
289
  * @type {import("../../webgl/TileTexture").TileType}
282
290
  */
283
291
  var tile = void 0;
284
- if (tileTextureCache.containsKey(tileCoordKey)) {
285
- tileTexture = tileTextureCache.get(tileCoordKey);
292
+ if (tileTextureCache.containsKey(cacheKey)) {
293
+ tileTexture = tileTextureCache.get(cacheKey);
286
294
  tile = tileTexture.tile;
287
295
  }
288
296
  if (!tileTexture || tileTexture.tile.key !== tileSource.getKey()) {
289
297
  tile = tileSource.getTile(z, x, y, frameState.pixelRatio, viewState.projection);
290
298
  if (!tileTexture) {
291
299
  tileTexture = new TileTexture(tile, tileGrid, this.helper);
292
- tileTextureCache.set(tileCoordKey, tileTexture);
300
+ tileTextureCache.set(cacheKey, tileTexture);
293
301
  }
294
302
  else {
295
303
  if (this.isDrawableTile_(tile)) {
@@ -324,11 +332,12 @@ var WebGLTileLayerRenderer = /** @class */ (function (_super) {
324
332
  * @return {HTMLElement} The rendered element.
325
333
  */
326
334
  WebGLTileLayerRenderer.prototype.renderFrame = function (frameState) {
335
+ this.renderComplete = true;
327
336
  var gl = this.helper.getGL();
328
337
  this.preRender(gl, frameState);
329
338
  var viewState = frameState.viewState;
330
339
  var tileLayer = this.getLayer();
331
- var tileSource = tileLayer.getSource();
340
+ var tileSource = tileLayer.getRenderSource();
332
341
  var tileGrid = tileSource.getTileGridForProjection(viewState.projection);
333
342
  var extent = getRenderExtent(frameState, frameState.extent);
334
343
  var z = tileGrid.getZForResolution(viewState.resolution, tileSource.zDirection);
@@ -369,6 +378,7 @@ var WebGLTileLayerRenderer = /** @class */ (function (_super) {
369
378
  var tileCoordKey = getTileCoordKey(tileCoord);
370
379
  alphaLookup[tileCoordKey] = alpha;
371
380
  }
381
+ this.renderComplete = false;
372
382
  // first look for child tiles (at z + 1)
373
383
  var coveredByChildren = this.findAltTiles_(tileGrid, tileCoord, z + 1, tileTexturesByZ);
374
384
  if (coveredByChildren) {
@@ -484,9 +494,10 @@ var WebGLTileLayerRenderer = /** @class */ (function (_super) {
484
494
  }
485
495
  var covered = true;
486
496
  var tileTextureCache = this.tileTextureCache_;
497
+ var source = this.getLayer().getRenderSource();
487
498
  for (var x = tileRange.minX; x <= tileRange.maxX; ++x) {
488
499
  for (var y = tileRange.minY; y <= tileRange.maxY; ++y) {
489
- var cacheKey = getKeyZXY(altZ, x, y);
500
+ var cacheKey = getCacheKey(source, [altZ, x, y]);
490
501
  var loaded = false;
491
502
  if (tileTextureCache.containsKey(cacheKey)) {
492
503
  var tileTexture = tileTextureCache.get(cacheKey);
@@ -1 +1 @@
1
- {"version":3,"file":"TileLayer.js","sourceRoot":"","sources":["../../src/renderer/webgl/TileLayer.js"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"TileLayer.js","sourceRoot":"","sources":["../../src/renderer/webgl/TileLayer.js"],"names":[],"mappings":"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"}
package/source.d.ts CHANGED
@@ -1,3 +1,16 @@
1
+ /**
2
+ * Creates a sources function from a tile grid. This function can be used as value for the
3
+ * `sources` property of the {@link module:ol/layer/Layer~Layer} subclasses that support it.
4
+ * @param {import("./tilegrid/TileGrid.js").default} tileGrid Tile grid.
5
+ * @param {function(import("./tilecoord.js").TileCoord): import("./source/Source.js").default} factory Source factory.
6
+ * This function takes a {@link module:ol/tilecoord~TileCoord} as argument and is expected to return a
7
+ * {@link module:ol/source/Source~Source}. **Note**: The returned sources should have a tile grid with
8
+ * a limited set of resolutions, matching the resolution range of a single zoom level of the pyramid
9
+ * `tileGrid` that `createFromTileGrid` was called with.
10
+ * @return {function(import("./extent.js").Extent, number): Array<import("./source/Source.js").default>} Sources function.
11
+ * @api
12
+ */
13
+ export function sourcesFromTileGrid(tileGrid: import("./tilegrid/TileGrid.js").default, factory: (arg0: number[]) => import("./source/Source.js").default): (arg0: number[], arg1: number) => import("./source/Source.js").default[];
1
14
  export { default as BingMaps } from "./source/BingMaps.js";
2
15
  export { default as CartoDB } from "./source/CartoDB.js";
3
16
  export { default as Cluster } from "./source/Cluster.js";
package/source.d.ts.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"source.d.ts","sourceRoot":"","sources":["src/source.js"],"names":[],"mappings":""}
1
+ {"version":3,"file":"source.d.ts","sourceRoot":"","sources":["src/source.js"],"names":[],"mappings":"AAqCA;;;;;;;;;;;GAWG;AACH,qOAoBC"}
package/source.js CHANGED
@@ -1,6 +1,8 @@
1
1
  /**
2
2
  * @module ol/source
3
3
  */
4
+ import LRUCache from './structs/LRUCache.js';
5
+ import { getIntersection } from './extent.js';
4
6
  export { default as BingMaps } from './source/BingMaps.js';
5
7
  export { default as CartoDB } from './source/CartoDB.js';
6
8
  export { default as Cluster } from './source/Cluster.js';
@@ -30,4 +32,37 @@ export { default as VectorTile } from './source/VectorTile.js';
30
32
  export { default as WMTS } from './source/WMTS.js';
31
33
  export { default as XYZ } from './source/XYZ.js';
32
34
  export { default as Zoomify } from './source/Zoomify.js';
35
+ /**
36
+ * Creates a sources function from a tile grid. This function can be used as value for the
37
+ * `sources` property of the {@link module:ol/layer/Layer~Layer} subclasses that support it.
38
+ * @param {import("./tilegrid/TileGrid.js").default} tileGrid Tile grid.
39
+ * @param {function(import("./tilecoord.js").TileCoord): import("./source/Source.js").default} factory Source factory.
40
+ * This function takes a {@link module:ol/tilecoord~TileCoord} as argument and is expected to return a
41
+ * {@link module:ol/source/Source~Source}. **Note**: The returned sources should have a tile grid with
42
+ * a limited set of resolutions, matching the resolution range of a single zoom level of the pyramid
43
+ * `tileGrid` that `createFromTileGrid` was called with.
44
+ * @return {function(import("./extent.js").Extent, number): Array<import("./source/Source.js").default>} Sources function.
45
+ * @api
46
+ */
47
+ export function sourcesFromTileGrid(tileGrid, factory) {
48
+ var sourceCache = new LRUCache(32);
49
+ var tileGridExtent = tileGrid.getExtent();
50
+ return function (extent, resolution) {
51
+ sourceCache.expireCache();
52
+ if (tileGridExtent) {
53
+ extent = getIntersection(tileGridExtent, extent);
54
+ }
55
+ var z = tileGrid.getZForResolution(resolution);
56
+ var wantedSources = [];
57
+ tileGrid.forEachTileCoord(extent, z, function (tileCoord) {
58
+ var key = tileCoord.toString();
59
+ if (!sourceCache.containsKey(key)) {
60
+ var source = factory(tileCoord);
61
+ sourceCache.set(key, source);
62
+ }
63
+ wantedSources.push(sourceCache.get(key));
64
+ });
65
+ return wantedSources;
66
+ };
67
+ }
33
68
  //# sourceMappingURL=source.js.map
package/source.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"source.js","sourceRoot":"","sources":["src/source.js"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAC,OAAO,IAAI,QAAQ,EAAC,MAAM,sBAAsB,CAAC;AACzD,OAAO,EAAC,OAAO,IAAI,OAAO,EAAC,MAAM,qBAAqB,CAAC;AACvD,OAAO,EAAC,OAAO,IAAI,OAAO,EAAC,MAAM,qBAAqB,CAAC;AACvD,OAAO,EAAC,OAAO,IAAI,QAAQ,EAAC,MAAM,sBAAsB,CAAC;AACzD,OAAO,EAAC,OAAO,IAAI,OAAO,EAAC,MAAM,qBAAqB,CAAC;AACvD,OAAO,EAAC,OAAO,IAAI,IAAI,EAAC,MAAM,kBAAkB,CAAC;AACjD,OAAO,EAAC,OAAO,IAAI,KAAK,EAAC,MAAM,mBAAmB,CAAC;AACnD,OAAO,EAAC,OAAO,IAAI,eAAe,EAAC,MAAM,6BAA6B,CAAC;AACvE,OAAO,EAAC,OAAO,IAAI,WAAW,EAAC,MAAM,yBAAyB,CAAC;AAC/D,OAAO,EAAC,OAAO,IAAI,aAAa,EAAC,MAAM,2BAA2B,CAAC;AACnE,OAAO,EAAC,OAAO,IAAI,WAAW,EAAC,MAAM,yBAAyB,CAAC;AAC/D,OAAO,EAAC,OAAO,IAAI,QAAQ,EAAC,MAAM,sBAAsB,CAAC;AACzD,OAAO,EAAC,OAAO,IAAI,GAAG,EAAC,MAAM,iBAAiB,CAAC;AAC/C,OAAO,EAAC,OAAO,IAAI,MAAM,EAAC,MAAM,oBAAoB,CAAC;AACrD,OAAO,EAAC,OAAO,IAAI,MAAM,EAAC,MAAM,oBAAoB,CAAC;AACrD,OAAO,EAAC,OAAO,IAAI,MAAM,EAAC,MAAM,oBAAoB,CAAC;AACrD,OAAO,EAAC,OAAO,IAAI,IAAI,EAAC,MAAM,kBAAkB,CAAC;AACjD,OAAO,EAAC,OAAO,IAAI,cAAc,EAAC,MAAM,4BAA4B,CAAC;AACrE,OAAO,EAAC,OAAO,IAAI,SAAS,EAAC,MAAM,uBAAuB,CAAC;AAC3D,OAAO,EAAC,OAAO,IAAI,SAAS,EAAC,MAAM,uBAAuB,CAAC;AAC3D,OAAO,EAAC,OAAO,IAAI,QAAQ,EAAC,MAAM,sBAAsB,CAAC;AACzD,OAAO,EAAC,OAAO,IAAI,OAAO,EAAC,MAAM,qBAAqB,CAAC;AACvD,OAAO,EAAC,OAAO,IAAI,OAAO,EAAC,MAAM,qBAAqB,CAAC;AACvD,OAAO,EAAC,OAAO,IAAI,OAAO,EAAC,MAAM,qBAAqB,CAAC;AACvD,OAAO,EAAC,OAAO,IAAI,MAAM,EAAC,MAAM,oBAAoB,CAAC;AACrD,OAAO,EAAC,OAAO,IAAI,UAAU,EAAC,MAAM,wBAAwB,CAAC;AAC7D,OAAO,EAAC,OAAO,IAAI,IAAI,EAAC,MAAM,kBAAkB,CAAC;AACjD,OAAO,EAAC,OAAO,IAAI,GAAG,EAAC,MAAM,iBAAiB,CAAC;AAC/C,OAAO,EAAC,OAAO,IAAI,OAAO,EAAC,MAAM,qBAAqB,CAAC"}
1
+ {"version":3,"file":"source.js","sourceRoot":"","sources":["src/source.js"],"names":[],"mappings":"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"}
package/src/layer/Base.js CHANGED
@@ -163,7 +163,6 @@ class BaseLayer extends BaseObject {
163
163
  });
164
164
  const zIndex = this.getZIndex();
165
165
  state.opacity = clamp(Math.round(this.getOpacity() * 100) / 100, 0, 1);
166
- state.sourceState = this.getSourceState();
167
166
  state.visible = this.getVisible();
168
167
  state.extent = this.getExtent();
169
168
  state.zIndex = zIndex === undefined && !state.managed ? Infinity : zIndex;
@@ -57,7 +57,7 @@ import {listen, unlistenByKey} from '../events.js';
57
57
  * @typedef {Object} State
58
58
  * @property {import("./Layer.js").default} layer Layer.
59
59
  * @property {number} opacity Opacity, the value is rounded to two digits to appear after the decimal point.
60
- * @property {import("../source/State.js").default} sourceState SourceState.
60
+ * @property {import("../source/Source.js").default|undefined} source Source being rendered (only for multi-source layers).
61
61
  * @property {boolean} visible Visible.
62
62
  * @property {boolean} managed Managed.
63
63
  * @property {import("../extent.js").Extent} [extent] Extent.
@@ -196,6 +196,13 @@ class Layer extends BaseLayer {
196
196
  return /** @type {SourceType} */ (this.get(LayerProperty.SOURCE)) || null;
197
197
  }
198
198
 
199
+ /**
200
+ * @return {SourceType} The source being rendered.
201
+ */
202
+ getRenderSource() {
203
+ return this.getSource();
204
+ }
205
+
199
206
  /**
200
207
  * @return {import("../source/State.js").default} Source state.
201
208
  */
@@ -3,6 +3,7 @@
3
3
  */
4
4
  import BaseTileLayer from './BaseTile.js';
5
5
  import LayerProperty from '../layer/Property.js';
6
+ import SourceState from '../source/State.js';
6
7
  import WebGLTileLayerRenderer, {
7
8
  Attributes,
8
9
  Uniforms,
@@ -64,6 +65,11 @@ import {assign} from '../obj.js';
64
65
  * @property {number} [preload=0] Preload. Load low-resolution tiles up to `preload` levels. `0`
65
66
  * means no preloading.
66
67
  * @property {SourceType} [source] Source for this layer.
68
+ * @property {Array<SourceType>|function(import("../extent.js").Extent, number):Array<SourceType>} [sources] Array
69
+ * of sources for this layer. Takes precedence over `source`. Can either be an array of sources, or a function that
70
+ * expects an extent and a resolution (in view projection units per pixel) and returns an array of sources. See
71
+ * {@link module:ol/source.sourcesFromTileGrid} for a helper function to generate sources that are organized in a
72
+ * pyramid following the same pattern as a tile grid.
67
73
  * @property {import("../PluggableMap.js").default} [map] Sets the layer as overlay on a map. The map will not manage
68
74
  * this layer in its layers collection, and the layer will be rendered on top. This is useful for
69
75
  * temporary layers. The standard way to add a layer to a map and have it managed by the map is to
@@ -291,6 +297,18 @@ class WebGLTileLayer extends BaseTileLayer {
291
297
 
292
298
  super(options);
293
299
 
300
+ /**
301
+ * @type {Array<SourceType>|function(import("../extent.js").Extent, number):Array<SourceType>}
302
+ * @private
303
+ */
304
+ this.sources_ = options.sources;
305
+
306
+ /**
307
+ * @type {number}
308
+ * @private
309
+ */
310
+ this.renderedResolution_ = NaN;
311
+
294
312
  /**
295
313
  * @type {Style}
296
314
  * @private
@@ -312,6 +330,41 @@ class WebGLTileLayer extends BaseTileLayer {
312
330
  this.addChangeListener(LayerProperty.SOURCE, this.handleSourceUpdate_);
313
331
  }
314
332
 
333
+ /**
334
+ * Gets the sources for this layer, for a given extent and resolution.
335
+ * @param {import("../extent.js").Extent} extent Extent.
336
+ * @param {number} resolution Resolution.
337
+ * @return {Array<SourceType>} Sources.
338
+ */
339
+ getSources(extent, resolution) {
340
+ const source = this.getSource();
341
+ return this.sources_
342
+ ? typeof this.sources_ === 'function'
343
+ ? this.sources_(extent, resolution)
344
+ : this.sources_
345
+ : source
346
+ ? [source]
347
+ : [];
348
+ }
349
+
350
+ /**
351
+ * @return {SourceType} The source being rendered.
352
+ */
353
+ getRenderSource() {
354
+ return (
355
+ /** @type {SourceType} */ (this.getLayerState().source) ||
356
+ this.getSource()
357
+ );
358
+ }
359
+
360
+ /**
361
+ * @return {import("../source/State.js").default} Source state.
362
+ */
363
+ getSourceState() {
364
+ const source = this.getRenderSource();
365
+ return source ? source.getState() : SourceState.UNDEFINED;
366
+ }
367
+
315
368
  /**
316
369
  * @private
317
370
  */
@@ -340,6 +393,66 @@ class WebGLTileLayer extends BaseTileLayer {
340
393
  });
341
394
  }
342
395
 
396
+ /**
397
+ * @param {import("../PluggableMap").FrameState} frameState Frame state.
398
+ * @param {Array<SourceType>} sources Sources.
399
+ * @return {HTMLElement} Canvas.
400
+ */
401
+ renderSources(frameState, sources) {
402
+ const layerRenderer = this.getRenderer();
403
+ let canvas;
404
+ for (let i = 0, ii = sources.length; i < ii; ++i) {
405
+ this.getLayerState().source = sources[i];
406
+ if (layerRenderer.prepareFrame(frameState)) {
407
+ canvas = layerRenderer.renderFrame(frameState);
408
+ }
409
+ }
410
+ return canvas;
411
+ }
412
+
413
+ /**
414
+ * @param {?import("../PluggableMap.js").FrameState} frameState Frame state.
415
+ * @param {HTMLElement} target Target which the renderer may (but need not) use
416
+ * for rendering its content.
417
+ * @return {HTMLElement} The rendered element.
418
+ */
419
+ render(frameState, target) {
420
+ const viewState = frameState.viewState;
421
+ const sources = this.getSources(frameState.extent, viewState.resolution);
422
+ let ready = true;
423
+ for (let i = 0, ii = sources.length; i < ii; ++i) {
424
+ const source = sources[i];
425
+ const sourceState = source.getState();
426
+ if (sourceState == SourceState.LOADING) {
427
+ const onChange = () => {
428
+ if (source.getState() == SourceState.READY) {
429
+ source.removeEventListener('change', onChange);
430
+ this.changed();
431
+ }
432
+ };
433
+ source.addEventListener('change', onChange);
434
+ }
435
+ ready = ready && sourceState == SourceState.READY;
436
+ }
437
+ const canvas = this.renderSources(frameState, sources);
438
+ if (this.getRenderer().renderComplete && ready) {
439
+ // Fully rendered, done.
440
+ this.renderedResolution_ = viewState.resolution;
441
+ return canvas;
442
+ }
443
+ // Render sources from previously fully rendered frames
444
+ if (this.renderedResolution_ > 0.5 * viewState.resolution) {
445
+ const altSources = this.getSources(
446
+ frameState.extent,
447
+ this.renderedResolution_
448
+ ).filter((source) => !sources.includes(source));
449
+ if (altSources.length > 0) {
450
+ return this.renderSources(frameState, altSources);
451
+ }
452
+ }
453
+ return canvas;
454
+ }
455
+
343
456
  /**
344
457
  * Update the layer style. The `updateStyleVariables` function is a more efficient
345
458
  * way to update layer rendering. In cases where the whole style needs to be updated,
@@ -110,15 +110,17 @@ class CompositeMapRenderer extends MapRenderer {
110
110
  for (let i = 0, ii = layerStatesArray.length; i < ii; ++i) {
111
111
  const layerState = layerStatesArray[i];
112
112
  frameState.layerIndex = i;
113
+
114
+ const layer = layerState.layer;
115
+ const sourceState = layer.getSourceState();
113
116
  if (
114
117
  !inView(layerState, viewState) ||
115
- (layerState.sourceState != SourceState.READY &&
116
- layerState.sourceState != SourceState.UNDEFINED)
118
+ (sourceState != SourceState.READY &&
119
+ sourceState != SourceState.UNDEFINED)
117
120
  ) {
118
121
  continue;
119
122
  }
120
123
 
121
- const layer = layerState.layer;
122
124
  const element = layer.render(frameState, previousElement);
123
125
  if (!element) {
124
126
  continue;
@@ -161,7 +161,7 @@ class WebGLLayerRenderer extends LayerRenderer {
161
161
  * @return {boolean} Layer is ready to be rendered.
162
162
  */
163
163
  prepareFrame(frameState) {
164
- if (this.getLayer().getSource()) {
164
+ if (this.getLayer().getRenderSource()) {
165
165
  let incrementGroup = true;
166
166
  let groupNumber = -1;
167
167
  let className;
@@ -20,7 +20,6 @@ import {
20
20
  } from '../../vec/mat4.js';
21
21
  import {
22
22
  createOrUpdate as createTileCoord,
23
- getKeyZXY,
24
23
  getKey as getTileCoordKey,
25
24
  } from '../../tilecoord.js';
26
25
  import {fromUserExtent} from '../../proj.js';
@@ -98,7 +97,7 @@ function getRenderExtent(frameState, extent) {
98
97
  );
99
98
  }
100
99
  const source =
101
- /** {import("../../source/Tile.js").default} */ layerState.layer.getSource();
100
+ /** {import("../../source/Tile.js").default} */ layerState.layer.getRenderSource();
102
101
  if (!source.getWrapX()) {
103
102
  const gridExtent = source
104
103
  .getTileGridForProjection(frameState.viewState.projection)
@@ -110,6 +109,10 @@ function getRenderExtent(frameState, extent) {
110
109
  return extent;
111
110
  }
112
111
 
112
+ function getCacheKey(source, tileCoord) {
113
+ return `${source.getKey()},${getTileCoordKey(tileCoord)}`;
114
+ }
115
+
113
116
  /**
114
117
  * @typedef {Object} Options
115
118
  * @property {string} vertexShader Vertex shader source.
@@ -140,6 +143,12 @@ class WebGLTileLayerRenderer extends WebGLLayerRenderer {
140
143
  uniforms: options.uniforms,
141
144
  });
142
145
 
146
+ /**
147
+ * The last call to `renderFrame` was completed with all tiles loaded
148
+ * @type {boolean}
149
+ */
150
+ this.renderComplete = false;
151
+
143
152
  /**
144
153
  * This transform converts tile i, j coordinates to screen coordinates.
145
154
  * @type {import("../../transform.js").Transform}
@@ -273,7 +282,7 @@ class WebGLTileLayerRenderer extends WebGLLayerRenderer {
273
282
  */
274
283
  prepareFrameInternal(frameState) {
275
284
  const layer = this.getLayer();
276
- const source = layer.getSource();
285
+ const source = layer.getRenderSource();
277
286
  if (!source) {
278
287
  return false;
279
288
  }
@@ -293,7 +302,7 @@ class WebGLTileLayerRenderer extends WebGLLayerRenderer {
293
302
  enqueueTiles(frameState, extent, z, tileTexturesByZ) {
294
303
  const viewState = frameState.viewState;
295
304
  const tileLayer = this.getLayer();
296
- const tileSource = tileLayer.getSource();
305
+ const tileSource = tileLayer.getRenderSource();
297
306
  const tileGrid = tileSource.getTileGridForProjection(viewState.projection);
298
307
  const tileTextureCache = this.tileTextureCache_;
299
308
  const tileRange = tileGrid.getTileRangeForExtentAndZ(
@@ -314,7 +323,7 @@ class WebGLTileLayerRenderer extends WebGLLayerRenderer {
314
323
  for (let x = tileRange.minX; x <= tileRange.maxX; ++x) {
315
324
  for (let y = tileRange.minY; y <= tileRange.maxY; ++y) {
316
325
  const tileCoord = createTileCoord(z, x, y, this.tempTileCoord_);
317
- const tileCoordKey = getTileCoordKey(tileCoord);
326
+ const cacheKey = getCacheKey(tileSource, tileCoord);
318
327
 
319
328
  /**
320
329
  * @type {TileTexture}
@@ -326,8 +335,8 @@ class WebGLTileLayerRenderer extends WebGLLayerRenderer {
326
335
  */
327
336
  let tile;
328
337
 
329
- if (tileTextureCache.containsKey(tileCoordKey)) {
330
- tileTexture = tileTextureCache.get(tileCoordKey);
338
+ if (tileTextureCache.containsKey(cacheKey)) {
339
+ tileTexture = tileTextureCache.get(cacheKey);
331
340
  tile = tileTexture.tile;
332
341
  }
333
342
  if (!tileTexture || tileTexture.tile.key !== tileSource.getKey()) {
@@ -340,7 +349,7 @@ class WebGLTileLayerRenderer extends WebGLLayerRenderer {
340
349
  );
341
350
  if (!tileTexture) {
342
351
  tileTexture = new TileTexture(tile, tileGrid, this.helper);
343
- tileTextureCache.set(tileCoordKey, tileTexture);
352
+ tileTextureCache.set(cacheKey, tileTexture);
344
353
  } else {
345
354
  if (this.isDrawableTile_(tile)) {
346
355
  tileTexture.setTile(tile);
@@ -379,12 +388,13 @@ class WebGLTileLayerRenderer extends WebGLLayerRenderer {
379
388
  * @return {HTMLElement} The rendered element.
380
389
  */
381
390
  renderFrame(frameState) {
391
+ this.renderComplete = true;
382
392
  const gl = this.helper.getGL();
383
393
  this.preRender(gl, frameState);
384
394
 
385
395
  const viewState = frameState.viewState;
386
396
  const tileLayer = this.getLayer();
387
- const tileSource = tileLayer.getSource();
397
+ const tileSource = tileLayer.getRenderSource();
388
398
  const tileGrid = tileSource.getTileGridForProjection(viewState.projection);
389
399
  const extent = getRenderExtent(frameState, frameState.extent);
390
400
  const z = tileGrid.getZForResolution(
@@ -438,6 +448,7 @@ class WebGLTileLayerRenderer extends WebGLLayerRenderer {
438
448
  const tileCoordKey = getTileCoordKey(tileCoord);
439
449
  alphaLookup[tileCoordKey] = alpha;
440
450
  }
451
+ this.renderComplete = false;
441
452
 
442
453
  // first look for child tiles (at z + 1)
443
454
  const coveredByChildren = this.findAltTiles_(
@@ -635,9 +646,10 @@ class WebGLTileLayerRenderer extends WebGLLayerRenderer {
635
646
 
636
647
  let covered = true;
637
648
  const tileTextureCache = this.tileTextureCache_;
649
+ const source = this.getLayer().getRenderSource();
638
650
  for (let x = tileRange.minX; x <= tileRange.maxX; ++x) {
639
651
  for (let y = tileRange.minY; y <= tileRange.maxY; ++y) {
640
- const cacheKey = getKeyZXY(altZ, x, y);
652
+ const cacheKey = getCacheKey(source, [altZ, x, y]);
641
653
  let loaded = false;
642
654
  if (tileTextureCache.containsKey(cacheKey)) {
643
655
  const tileTexture = tileTextureCache.get(cacheKey);
package/src/source.js CHANGED
@@ -2,6 +2,9 @@
2
2
  * @module ol/source
3
3
  */
4
4
 
5
+ import LRUCache from './structs/LRUCache.js';
6
+ import {getIntersection} from './extent.js';
7
+
5
8
  export {default as BingMaps} from './source/BingMaps.js';
6
9
  export {default as CartoDB} from './source/CartoDB.js';
7
10
  export {default as Cluster} from './source/Cluster.js';
@@ -31,3 +34,37 @@ export {default as VectorTile} from './source/VectorTile.js';
31
34
  export {default as WMTS} from './source/WMTS.js';
32
35
  export {default as XYZ} from './source/XYZ.js';
33
36
  export {default as Zoomify} from './source/Zoomify.js';
37
+
38
+ /**
39
+ * Creates a sources function from a tile grid. This function can be used as value for the
40
+ * `sources` property of the {@link module:ol/layer/Layer~Layer} subclasses that support it.
41
+ * @param {import("./tilegrid/TileGrid.js").default} tileGrid Tile grid.
42
+ * @param {function(import("./tilecoord.js").TileCoord): import("./source/Source.js").default} factory Source factory.
43
+ * This function takes a {@link module:ol/tilecoord~TileCoord} as argument and is expected to return a
44
+ * {@link module:ol/source/Source~Source}. **Note**: The returned sources should have a tile grid with
45
+ * a limited set of resolutions, matching the resolution range of a single zoom level of the pyramid
46
+ * `tileGrid` that `createFromTileGrid` was called with.
47
+ * @return {function(import("./extent.js").Extent, number): Array<import("./source/Source.js").default>} Sources function.
48
+ * @api
49
+ */
50
+ export function sourcesFromTileGrid(tileGrid, factory) {
51
+ const sourceCache = new LRUCache(32);
52
+ const tileGridExtent = tileGrid.getExtent();
53
+ return function (extent, resolution) {
54
+ sourceCache.expireCache();
55
+ if (tileGridExtent) {
56
+ extent = getIntersection(tileGridExtent, extent);
57
+ }
58
+ const z = tileGrid.getZForResolution(resolution);
59
+ const wantedSources = [];
60
+ tileGrid.forEachTileCoord(extent, z, (tileCoord) => {
61
+ const key = tileCoord.toString();
62
+ if (!sourceCache.containsKey(key)) {
63
+ const source = factory(tileCoord);
64
+ sourceCache.set(key, source);
65
+ }
66
+ wantedSources.push(sourceCache.get(key));
67
+ });
68
+ return wantedSources;
69
+ };
70
+ }