Make preload a number of levels instead of a boolean
This commit is contained in:
@@ -23,7 +23,7 @@ var bern = ol.projection.transform(
|
|||||||
var map = new ol.Map({
|
var map = new ol.Map({
|
||||||
layers: [
|
layers: [
|
||||||
new ol.layer.TileLayer({
|
new ol.layer.TileLayer({
|
||||||
preload: true,
|
preload: 4,
|
||||||
source: new ol.source.OpenStreetMap()
|
source: new ol.source.OpenStreetMap()
|
||||||
})
|
})
|
||||||
],
|
],
|
||||||
|
|||||||
@@ -12,7 +12,7 @@ var layers = [];
|
|||||||
for (var i = 0; i < styles.length; ++i) {
|
for (var i = 0; i < styles.length; ++i) {
|
||||||
layers.push(new ol.layer.TileLayer({
|
layers.push(new ol.layer.TileLayer({
|
||||||
visible: false,
|
visible: false,
|
||||||
preload: true,
|
preload: Infinity,
|
||||||
source: new ol.source.BingMaps({
|
source: new ol.source.BingMaps({
|
||||||
key: 'AgtFlPYDnymLEe9zJ5PCkghbNiFZE9aAtTy3mPaEnEBXqLHtFuTcKoZ-miMC3w7R',
|
key: 'AgtFlPYDnymLEe9zJ5PCkghbNiFZE9aAtTy3mPaEnEBXqLHtFuTcKoZ-miMC3w7R',
|
||||||
style: styles[i]
|
style: styles[i]
|
||||||
|
|||||||
+2
-2
@@ -9,7 +9,7 @@ goog.require('ol.source.BingMaps');
|
|||||||
var map1 = new ol.Map({
|
var map1 = new ol.Map({
|
||||||
layers: [
|
layers: [
|
||||||
new ol.layer.TileLayer({
|
new ol.layer.TileLayer({
|
||||||
preload: true,
|
preload: Infinity,
|
||||||
source: new ol.source.BingMaps({
|
source: new ol.source.BingMaps({
|
||||||
key: 'AgtFlPYDnymLEe9zJ5PCkghbNiFZE9aAtTy3mPaEnEBXqLHtFuTcKoZ-miMC3w7R',
|
key: 'AgtFlPYDnymLEe9zJ5PCkghbNiFZE9aAtTy3mPaEnEBXqLHtFuTcKoZ-miMC3w7R',
|
||||||
style: 'Aerial'
|
style: 'Aerial'
|
||||||
@@ -27,7 +27,7 @@ var map1 = new ol.Map({
|
|||||||
var map2 = new ol.Map({
|
var map2 = new ol.Map({
|
||||||
layers: [
|
layers: [
|
||||||
new ol.layer.TileLayer({
|
new ol.layer.TileLayer({
|
||||||
preload: false,
|
preload: 0, // default value
|
||||||
source: new ol.source.BingMaps({
|
source: new ol.source.BingMaps({
|
||||||
key: 'AgtFlPYDnymLEe9zJ5PCkghbNiFZE9aAtTy3mPaEnEBXqLHtFuTcKoZ-miMC3w7R',
|
key: 'AgtFlPYDnymLEe9zJ5PCkghbNiFZE9aAtTy3mPaEnEBXqLHtFuTcKoZ-miMC3w7R',
|
||||||
style: 'AerialWithLabels'
|
style: 'AerialWithLabels'
|
||||||
|
|||||||
@@ -9,7 +9,7 @@ goog.require('ol.source.OpenStreetMap');
|
|||||||
var map = new ol.Map({
|
var map = new ol.Map({
|
||||||
layers: [
|
layers: [
|
||||||
new ol.layer.TileLayer({
|
new ol.layer.TileLayer({
|
||||||
preload: true,
|
preload: 4,
|
||||||
source: new ol.source.OpenStreetMap()
|
source: new ol.source.OpenStreetMap()
|
||||||
})
|
})
|
||||||
],
|
],
|
||||||
|
|||||||
+1
-1
@@ -10,7 +10,7 @@ goog.require('ol.source.Stamen');
|
|||||||
var map = new ol.Map({
|
var map = new ol.Map({
|
||||||
layers: [
|
layers: [
|
||||||
new ol.layer.TileLayer({
|
new ol.layer.TileLayer({
|
||||||
preload: true,
|
preload: 4,
|
||||||
source: new ol.source.Stamen({
|
source: new ol.source.Stamen({
|
||||||
layer: 'watercolor'
|
layer: 'watercolor'
|
||||||
})
|
})
|
||||||
|
|||||||
@@ -105,7 +105,7 @@
|
|||||||
@exportObjectLiteralProperty ol.layer.TileLayerOptions.contrast number|undefined
|
@exportObjectLiteralProperty ol.layer.TileLayerOptions.contrast number|undefined
|
||||||
@exportObjectLiteralProperty ol.layer.TileLayerOptions.hue number|undefined
|
@exportObjectLiteralProperty ol.layer.TileLayerOptions.hue number|undefined
|
||||||
@exportObjectLiteralProperty ol.layer.TileLayerOptions.opacity 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.saturation number|undefined
|
||||||
@exportObjectLiteralProperty ol.layer.TileLayerOptions.source ol.source.Source
|
@exportObjectLiteralProperty ol.layer.TileLayerOptions.source ol.source.Source
|
||||||
@exportObjectLiteralProperty ol.layer.TileLayerOptions.visible boolean|undefined
|
@exportObjectLiteralProperty ol.layer.TileLayerOptions.visible boolean|undefined
|
||||||
|
|||||||
@@ -23,17 +23,17 @@ ol.layer.TileLayer = function(options) {
|
|||||||
goog.base(this, options);
|
goog.base(this, options);
|
||||||
|
|
||||||
this.setPreload(
|
this.setPreload(
|
||||||
goog.isDef(options.preload) ? options.preload : false);
|
goog.isDef(options.preload) ? options.preload : 0);
|
||||||
|
|
||||||
};
|
};
|
||||||
goog.inherits(ol.layer.TileLayer, ol.layer.Layer);
|
goog.inherits(ol.layer.TileLayer, ol.layer.Layer);
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @return {boolean} Preload.
|
* @return {number} Preload.
|
||||||
*/
|
*/
|
||||||
ol.layer.TileLayer.prototype.getPreload = function() {
|
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(
|
goog.exportProperty(
|
||||||
ol.layer.TileLayer.prototype,
|
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) {
|
ol.layer.TileLayer.prototype.setPreload = function(preload) {
|
||||||
this.set(ol.layer.TileLayerProperty.PRELOAD, preload);
|
this.set(ol.layer.TileLayerProperty.PRELOAD, preload);
|
||||||
|
|||||||
@@ -291,7 +291,7 @@ ol.renderer.Layer.prototype.snapCenterToPixel =
|
|||||||
* @param {ol.Projection} projection Projection.
|
* @param {ol.Projection} projection Projection.
|
||||||
* @param {ol.Extent} extent Extent.
|
* @param {ol.Extent} extent Extent.
|
||||||
* @param {number} currentZ Current Z.
|
* @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 {function(this: T, ol.Tile)=} opt_tileCallback Tile callback.
|
||||||
* @param {T=} opt_obj Object.
|
* @param {T=} opt_obj Object.
|
||||||
* @protected
|
* @protected
|
||||||
@@ -313,7 +313,7 @@ ol.renderer.Layer.prototype.manageTilePyramid = function(
|
|||||||
tileResolution = tileGrid.getResolution(z);
|
tileResolution = tileGrid.getResolution(z);
|
||||||
for (x = tileRange.minX; x <= tileRange.maxX; ++x) {
|
for (x = tileRange.minX; x <= tileRange.maxX; ++x) {
|
||||||
for (y = tileRange.minY; y <= tileRange.maxY; ++y) {
|
for (y = tileRange.minY; y <= tileRange.maxY; ++y) {
|
||||||
if (preload || z == currentZ) {
|
if (currentZ - z <= preload) {
|
||||||
tile = tileSource.getTile(z, x, y, tileGrid, projection);
|
tile = tileSource.getTile(z, x, y, tileGrid, projection);
|
||||||
if (tile.getState() == ol.TileState.IDLE) {
|
if (tile.getState() == ol.TileState.IDLE) {
|
||||||
wantedTiles[tile.tileCoord.toString()] = true;
|
wantedTiles[tile.tileCoord.toString()] = true;
|
||||||
|
|||||||
Reference in New Issue
Block a user