diff --git a/examples/animation.js b/examples/animation.js index 3bb3ae7cda..136fd54b68 100644 --- a/examples/animation.js +++ b/examples/animation.js @@ -23,7 +23,7 @@ var bern = ol.projection.transform( var map = new ol.Map({ layers: [ new ol.layer.TileLayer({ - preload: true, + preload: 4, source: new ol.source.OpenStreetMap() }) ], diff --git a/examples/bing-maps.js b/examples/bing-maps.js index 376dd2c869..4b75f11264 100644 --- a/examples/bing-maps.js +++ b/examples/bing-maps.js @@ -12,7 +12,7 @@ var layers = []; for (var i = 0; i < styles.length; ++i) { layers.push(new ol.layer.TileLayer({ visible: false, - preload: true, + preload: Infinity, source: new ol.source.BingMaps({ key: 'AgtFlPYDnymLEe9zJ5PCkghbNiFZE9aAtTy3mPaEnEBXqLHtFuTcKoZ-miMC3w7R', style: styles[i] diff --git a/examples/preload.js b/examples/preload.js index 945c670b16..278e1226b4 100644 --- a/examples/preload.js +++ b/examples/preload.js @@ -9,7 +9,7 @@ goog.require('ol.source.BingMaps'); var map1 = new ol.Map({ layers: [ new ol.layer.TileLayer({ - preload: true, + preload: Infinity, source: new ol.source.BingMaps({ key: 'AgtFlPYDnymLEe9zJ5PCkghbNiFZE9aAtTy3mPaEnEBXqLHtFuTcKoZ-miMC3w7R', style: 'Aerial' @@ -27,7 +27,7 @@ var map1 = new ol.Map({ var map2 = new ol.Map({ layers: [ new ol.layer.TileLayer({ - preload: false, + preload: 0, // default value source: new ol.source.BingMaps({ key: 'AgtFlPYDnymLEe9zJ5PCkghbNiFZE9aAtTy3mPaEnEBXqLHtFuTcKoZ-miMC3w7R', style: 'AerialWithLabels' diff --git a/examples/rotation.js b/examples/rotation.js index 263829a229..75a519f4f9 100644 --- a/examples/rotation.js +++ b/examples/rotation.js @@ -9,7 +9,7 @@ goog.require('ol.source.OpenStreetMap'); var map = new ol.Map({ layers: [ new ol.layer.TileLayer({ - preload: true, + preload: 4, source: new ol.source.OpenStreetMap() }) ], diff --git a/examples/stamen.js b/examples/stamen.js index 1507f5f035..d5dd0306cd 100644 --- a/examples/stamen.js +++ b/examples/stamen.js @@ -10,7 +10,7 @@ goog.require('ol.source.Stamen'); var map = new ol.Map({ layers: [ new ol.layer.TileLayer({ - preload: true, + preload: 4, source: new ol.source.Stamen({ layer: 'watercolor' }) diff --git a/src/objectliterals.exports b/src/objectliterals.exports index aa07df96ef..593cae744f 100644 --- a/src/objectliterals.exports +++ b/src/objectliterals.exports @@ -105,7 +105,7 @@ @exportObjectLiteralProperty ol.layer.TileLayerOptions.contrast number|undefined @exportObjectLiteralProperty ol.layer.TileLayerOptions.hue number|undefined @exportObjectLiteralProperty ol.layer.TileLayerOptions.opacity number|undefined -@exportObjectLiteralProperty ol.layer.TileLayerOptions.preload boolean|undefined +@exportObjectLiteralProperty ol.layer.TileLayerOptions.preload number|undefined @exportObjectLiteralProperty ol.layer.TileLayerOptions.saturation number|undefined @exportObjectLiteralProperty ol.layer.TileLayerOptions.source ol.source.Source @exportObjectLiteralProperty ol.layer.TileLayerOptions.visible boolean|undefined diff --git a/src/ol/layer/tilelayer.js b/src/ol/layer/tilelayer.js index a843713101..bc27f66982 100644 --- a/src/ol/layer/tilelayer.js +++ b/src/ol/layer/tilelayer.js @@ -23,17 +23,17 @@ ol.layer.TileLayer = function(options) { goog.base(this, options); this.setPreload( - goog.isDef(options.preload) ? options.preload : false); + goog.isDef(options.preload) ? options.preload : 0); }; goog.inherits(ol.layer.TileLayer, ol.layer.Layer); /** - * @return {boolean} Preload. + * @return {number} Preload. */ ol.layer.TileLayer.prototype.getPreload = function() { - return /** @type {boolean} */ (this.get(ol.layer.TileLayerProperty.PRELOAD)); + return /** @type {number} */ (this.get(ol.layer.TileLayerProperty.PRELOAD)); }; goog.exportProperty( ol.layer.TileLayer.prototype, @@ -50,7 +50,7 @@ ol.layer.TileLayer.prototype.getTileSource = function() { /** - * @param {boolean} preload Preload. + * @param {number} preload Preload. */ ol.layer.TileLayer.prototype.setPreload = function(preload) { this.set(ol.layer.TileLayerProperty.PRELOAD, preload); diff --git a/src/ol/renderer/layerrenderer.js b/src/ol/renderer/layerrenderer.js index 8a7100ef60..ec05d79c8f 100644 --- a/src/ol/renderer/layerrenderer.js +++ b/src/ol/renderer/layerrenderer.js @@ -291,7 +291,7 @@ ol.renderer.Layer.prototype.snapCenterToPixel = * @param {ol.Projection} projection Projection. * @param {ol.Extent} extent Extent. * @param {number} currentZ Current Z. - * @param {boolean} preload Preload low resolution tiles. + * @param {number} preload Load low resolution tiles up to 'preload' levels. * @param {function(this: T, ol.Tile)=} opt_tileCallback Tile callback. * @param {T=} opt_obj Object. * @protected @@ -313,7 +313,7 @@ ol.renderer.Layer.prototype.manageTilePyramid = function( tileResolution = tileGrid.getResolution(z); for (x = tileRange.minX; x <= tileRange.maxX; ++x) { for (y = tileRange.minY; y <= tileRange.maxY; ++y) { - if (preload || z == currentZ) { + if (currentZ - z <= preload) { tile = tileSource.getTile(z, x, y, tileGrid, projection); if (tile.getState() == ol.TileState.IDLE) { wantedTiles[tile.tileCoord.toString()] = true;