问题:【这里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);
}
},
}
注意:定时器应该及时销毁!