地理视图等瓦片加载完再淡入,避免逐块弹出
This commit is contained in:
@@ -510,6 +510,24 @@ export class CesiumGlobe {
|
||||
if (visible && this.viewer) this.viewer.scene.requestRender();
|
||||
}
|
||||
|
||||
// 等待当前视图的影像/地形瓦片加载完成(超时兜底),用于切换时“一起出现”
|
||||
waitUntilViewReady(timeout = 4000) {
|
||||
return new Promise((resolve) => {
|
||||
const globe = this.viewer.scene.globe;
|
||||
let done = false;
|
||||
const finish = () => {
|
||||
if (done) return;
|
||||
done = true;
|
||||
globe.tileLoadProgressEvent.removeEventListener(onProgress);
|
||||
resolve();
|
||||
};
|
||||
const onProgress = (remaining) => { if (remaining <= 0) finish(); };
|
||||
globe.tileLoadProgressEvent.addEventListener(onProgress);
|
||||
if (globe.tilesLoaded) finish();
|
||||
setTimeout(finish, timeout);
|
||||
});
|
||||
}
|
||||
|
||||
resize() {
|
||||
if (this.viewer) this.viewer.resize();
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user