-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathtmp-diagnose-tilemanager-flush.js
More file actions
16 lines (16 loc) · 1.26 KB
/
Copy pathtmp-diagnose-tilemanager-flush.js
File metadata and controls
16 lines (16 loc) · 1.26 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
import TileManager from './src/utils/tileManager.js';
class FakeWorker {
constructor() {
this.postMessage = (...args) => { console.log('BATCH', args); };
this.addEventListener = () => {};
this.removeEventListener = () => {};
}
}
const manager = new TileManager({ map: {}, source: { id:'test-source', type:'vector', tileSize:512, maxzoom:14 }, sourceLayer:'layer-1', fid:'id', tileSize:512, tolerance:0.00001, cacheSize:10, units:'meters', tilePoolSize:1, gatherPoolSize:1, tileWorkerSource:FakeWorker, gatherWorkerSource:FakeWorker });
manager.tilePool.postMessageBatch = (...args) => { console.log('BATCH', args); };
const event = { sourceId:'test-source', isSourceLoaded:true, tile:{ tileID:{canonical:{z:0,x:0,y:0}}, querySourceFeatures:(features, opts)=>{ console.log('QSF features', features, 'opts', opts); return [{ id:'feature-1', type:'Feature', geometry:{ type:'Polygon', coordinates:[[[0,0],[1,0],[1,1],[0,1],[0,0]]]}, properties:{id:'feature-1'}}]; }}};
manager.handleSourceData(event);
console.log('pending', manager._pendingTiles.size, 'queued', manager._tileQueue.length);
manager._tileScheduler.flush();
console.log('after flush pending', manager._pendingTiles.size, 'queued', manager._tileQueue.length);
setTimeout(() => console.log('timeout done'), 50);