恒美微站
首页
关于我们
建站服务
主题模板
案例展示
资讯中心
联系我们
Cesium 如何成功离线使用
首页
资讯中心
/
Cesium 如何成功离线使用
Cesium 如何成功离线使用
发布时间:2026/9/30 1:40:26
最近需要使用cesium这个开源三维地球和地图的javascript库。下载好cesium的相关文件(cesium.js,widgets.css等)下载后的目录结构如下图:下面介绍如何让cesium在断开网络的情况下可以成功启动出现三维球体。cesium的源码中有几处地方是在默认情况下会向cesium ion服务发起请求获取数据。如果在没有网络的情况下则会报如下图异常导致地图无法成功显示。这里我们就发现cesium在请求一个服务连接失败了。跟着关键字v1/assets/在源码中查看可以发现到底是哪里的函数定义的请求。找到下图的位置发现这里就是构造请求发起请求的地方。属于_createEndpointResource函数。接着通过“_createEndpointResource”找到调用该函数的地方其中一处可以看到代码是被定义在fromAssetId中。我们一层一层往上查询找到主要有以下两个函数中有调用该方法所以我们要避免调用这些函数。上面的第一报错就是我在代码中使用了createWorldTerrain函数。所以需要去掉或者注释掉该代码。这时候还是存在另外一个错误也就是还是有一处地方未发现。另外一个错误主要还是在上面通过“_createEndpointResource”找到在function IonImageryProvider(options)里面有调用而通过IonImageryProvider仔细查询可以找到在createDefaultImageryProviderViewModels函数有使用。这个函数也是最常见的一个创建默认图层的方法将里面的所有providerViewModels.push代码注释掉或者去掉返回空的providerViewModels。注释掉这个还不行还需注意一处地方。就是createWorldImagery方法。这个方法通过创建IonImageryProvider对象也会调用ion服务请求而导致异常、在上图代码处可以知道在初始化的时候如果我们没有自己传入一个imageryProvider对象。那么会自动调用createWorldImagery方法。所以也就产生第二个错误了。在我们初始化时定义一个默认的imageProvider对象如下图最终成功出现三维地球,效果图如下:离线的环境搭建好后便可以尝试自己加载离线发布的地图图层和模型数据了。