Respect cacheSize for reprojected caches
This commit is contained in:
@@ -194,7 +194,7 @@ ol.source.TileImage.prototype.getTileCacheForProjection = function(projection) {
|
|||||||
} else {
|
} else {
|
||||||
var projKey = ol.getUid(projection).toString();
|
var projKey = ol.getUid(projection).toString();
|
||||||
if (!(projKey in this.tileCacheForProjection)) {
|
if (!(projKey in this.tileCacheForProjection)) {
|
||||||
this.tileCacheForProjection[projKey] = new ol.TileCache();
|
this.tileCacheForProjection[projKey] = new ol.TileCache(this.tileCache.highWaterMark);
|
||||||
}
|
}
|
||||||
return this.tileCacheForProjection[projKey];
|
return this.tileCacheForProjection[projKey];
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -15,10 +15,9 @@ ol.TileCache = function(opt_highWaterMark) {
|
|||||||
ol.structs.LRUCache.call(this);
|
ol.structs.LRUCache.call(this);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @private
|
|
||||||
* @type {number}
|
* @type {number}
|
||||||
*/
|
*/
|
||||||
this.highWaterMark_ = opt_highWaterMark !== undefined ? opt_highWaterMark : 2048;
|
this.highWaterMark = opt_highWaterMark !== undefined ? opt_highWaterMark : 2048;
|
||||||
|
|
||||||
};
|
};
|
||||||
ol.inherits(ol.TileCache, ol.structs.LRUCache);
|
ol.inherits(ol.TileCache, ol.structs.LRUCache);
|
||||||
@@ -28,7 +27,7 @@ ol.inherits(ol.TileCache, ol.structs.LRUCache);
|
|||||||
* @return {boolean} Can expire cache.
|
* @return {boolean} Can expire cache.
|
||||||
*/
|
*/
|
||||||
ol.TileCache.prototype.canExpireCache = function() {
|
ol.TileCache.prototype.canExpireCache = function() {
|
||||||
return this.getCount() > this.highWaterMark_;
|
return this.getCount() > this.highWaterMark;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -20,6 +20,14 @@ describe('ol.source.Tile', function() {
|
|||||||
expect(source).to.be.a(ol.source.Source);
|
expect(source).to.be.a(ol.source.Source);
|
||||||
expect(source).to.be.a(ol.source.Tile);
|
expect(source).to.be.a(ol.source.Tile);
|
||||||
});
|
});
|
||||||
|
it('sets a custom cache size', function() {
|
||||||
|
var projection = ol.proj.get('EPSG:4326');
|
||||||
|
var source = new ol.source.Tile({
|
||||||
|
projection: projection,
|
||||||
|
cacheSize: 42
|
||||||
|
});
|
||||||
|
expect(source.getTileCacheForProjection(projection).highWaterMark).to.be(42);
|
||||||
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
describe('#setKey()', function() {
|
describe('#setKey()', function() {
|
||||||
|
|||||||
@@ -12,9 +12,10 @@ goog.require('ol.tilegrid');
|
|||||||
|
|
||||||
|
|
||||||
describe('ol.source.TileImage', function() {
|
describe('ol.source.TileImage', function() {
|
||||||
function createSource(opt_proj, opt_tileGrid) {
|
function createSource(opt_proj, opt_tileGrid, opt_cacheSize) {
|
||||||
var proj = opt_proj || 'EPSG:3857';
|
var proj = opt_proj || 'EPSG:3857';
|
||||||
return new ol.source.TileImage({
|
return new ol.source.TileImage({
|
||||||
|
cacheSize: opt_cacheSize,
|
||||||
projection: proj,
|
projection: proj,
|
||||||
tileGrid: opt_tileGrid ||
|
tileGrid: opt_tileGrid ||
|
||||||
ol.tilegrid.createForProjection(proj, undefined, [2, 2]),
|
ol.tilegrid.createForProjection(proj, undefined, [2, 2]),
|
||||||
@@ -23,6 +24,15 @@ describe('ol.source.TileImage', function() {
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
describe('#getTileCacheForProjection', function() {
|
||||||
|
it('uses the cacheSize for reprojected tile caches', function() {
|
||||||
|
var source = createSource(undefined, undefined, 42);
|
||||||
|
var tileCache = source.getTileCacheForProjection(ol.proj.get('EPSG:4326'));
|
||||||
|
expect(tileCache.highWaterMark).to.be(42);
|
||||||
|
expect(tileCache).to.not.equal(source.getTileCacheForProjection(source.getProjection()));
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
describe('#setTileGridForProjection', function() {
|
describe('#setTileGridForProjection', function() {
|
||||||
it('uses the tilegrid for given projection', function() {
|
it('uses the tilegrid for given projection', function() {
|
||||||
var source = createSource();
|
var source = createSource();
|
||||||
|
|||||||
Reference in New Issue
Block a user