先说下背景:
项目用vue2 + Cesium来搭建的框架,然后在里面加载了OSGB转的3dtiles,转化工具为Cesiumlab。但是加载的这个3dtiles无论如何都不显示,当地图移动时就报错,报错截图如下:

查了下这个Draco是个模型压缩工具,在3dtiles里压缩了.b3dm以及i3dm。

然后猜了下原因:
1、Cesium版本问题
2、Vue2 + Cesium集成问题
3、模型本身问题
4、模型发布问题
针对上述三个猜想我进行了一下论证:
        首先我用原始的H5 + Cesium搭建了个加载模型的测试界面,并保持此页面的Cesium版本和我项目里的版本一致,都为1.91,但是测试了发现H5+Cesium中的模型可以正常显示,于是猜想1和3排除。
        其次我在项目中加载了其它OSGB转化的3dtiles也可以正常加载,那么猜想2就排除了。
        最后针对猜想4,项目中加载的模型都放在了云服务器上,通过nginx发布,于是我将模型下载到本地分别通过nginx、iis、tomcat发布,发现一样的错误,于是猜想4排除。

这就脑壳疼了啊,突然想起来查github里的Cesium问题板块,居然查到了,以下是解答地址:
untimeError: Aborted(CompileError: WebAssembly.instantiate() · Issue #10420 · CesiumGS/cesium · GitHub
再简单说下方法一解决步骤:
a)、拷贝压缩工具配置:

 b)、在项目的根目录Public下创建ThirdParty文件夹,讲a中拷贝的draco_decoder.wasm复制到此文件夹下:

如上,重新运行项目,完美解决(感谢各位大佬!!!):

方法二解决步骤:

 

Logo

前往低代码交流专区

更多推荐