in modules/geo-layers/src/tile-layer/tileset-2d.js [260:291]
_resizeCache() {
const {_cache, opts} = this;
const maxCacheSize =
opts.maxCacheSize ||
(opts.maxCacheByteSize ? Infinity : DEFAULT_CACHE_SCALE * this.selectedTiles.length);
const maxCacheByteSize = opts.maxCacheByteSize || Infinity;
const overflown = _cache.size > maxCacheSize || this._cacheByteSize > maxCacheByteSize;
if (overflown) {
for (const [tileId, tile] of _cache) {
if (!tile.isVisible) {
// delete tile
this._cacheByteSize -= opts.maxCacheByteSize ? tile.byteLength : 0;
_cache.delete(tileId);
}
if (_cache.size <= maxCacheSize && this._cacheByteSize <= maxCacheByteSize) {
break;
}
}
this._rebuildTree();
this._dirty = true;
}
if (this._dirty) {
this._tiles = Array.from(this._cache.values())
// sort by zoom level so that smaller tiles are displayed on top
.sort((t1, t2) => t1.z - t2.z);
this._dirty = false;
}
}