in src/globemap.ts [720:752]
private static minimizeTiles(tileCacheArray: TileMap[]): ITileGapObject[] {
if (!tileCacheArray || !tileCacheArray.length) {
return [];
}
let result = [];
tileCacheArray.forEach(obj => {
let rank: number = 0, lastKey: number = Number(Object.keys(obj)[0]);
let gap: number[] = [lastKey];
let gaps = [];
for (let key in obj) {
if (obj.hasOwnProperty(key)) {
rank = key.length;
const convertedKey: number = Number(key);
if (Math.abs(convertedKey - lastKey) > 1) {
gap.push(lastKey);
gaps.push(gap);
gap = [convertedKey];
}
lastKey = convertedKey;
}
}
gap.push(lastKey);
gaps.push(gap);
let currentZoomTiles: ITileGapObject = {
gaps,
rank
};
result.push(currentZoomTiles);
});
return result;
}