Skip to content

Uncaught (in promise) ReferenceError: Cesium is not defined at vue-cesium.js?v=2048c4fa:23523:27,使用的环境是Vue3+js,初始化的时候更换imagery-provider的默认值,出现报错。 #542

Answered by zouyaoji
zenghaiy asked this question in Q&A
Discussion options

You must be logged in to vote

是这样哈,vue-cesium加载Cesium.js实际上是动态script标签加上去的,所以按你代码在setup中使用Cesium说找不到,因为还没初始化好呢。3个办法呢。
1、在vc-viewer的cesiumReady事件后去初始化Cesium的原生对象。但Cesium的原生对象,尤其是是一些复杂的对象,不建议用ref初始化,会比较好性能,用shallowRef都要好一点。
2、直接把CesiumJS和它的样式文件在index.html中引入,这样全局就有CesiumJS了。
3、像Cesium.UrlTemplateImageryProvider等已经封装成组件的https://zouyaoji.top/vue-cesium/#/zh-CN/component/providers/vc-imagery-provider-urltemplate 可以直接用现成组件传url,ref只需要写一个字符串即可,性能开销小。

推荐3。

Replies: 1 comment

Comment options

You must be logged in to vote
0 replies
Answer selected by zenghaiy
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Category
Q&A
Labels
None yet
2 participants