問題:【這裡cesium已經引入了】,适合的場景是vue的元件created等方法裡面調用初始化事件,但報錯說cesium未定義的情況。
思路:created裡調用初始化init方法;init方法裡判斷cesium不存在的話延遲回調自身。
代碼如下:
created() {
this.init();
},
methods: {
init(){
let _this = this;
let viewer = this.$globe.viewer;
if (viewer) {
if (this.timerInit) {
clearTimeout(this.timerInit);
console.log("銷毀定時器 timerInit ");
}
window.handlerQueryProperties = new Cesium.ScreenSpaceEventHandler(viewer.scene.canvas);
} else {
this.timerInit = setTimeout(() => {
_this.init();
}, 1000);
}
},
}
注意:定時器應該及時銷毀!