离线加载cesium的方法(如何不加载endpoint接口)

我们使用cesium时,可能会遇到如下问题:
1.经常因为网络原因endpoint接口加载不出来,然后漆黑一片:
1.png
2.有离线部署的需求,需要无外网使用ceisum.

因此,我们需要了解一下这个endpoint接口,是做什么的

企业微信截图_20210604141914.png

基本用处

网上搜了很多endpoint接口的作用,没有任何有效信息。
根据我的个人理解,endpoint接口传入access_token参数,主要是用来验证access_token是否有效的(废话),而验证access_token有效时,cesium才可以调用其对应的服务,因此,就是说只要我们把cesium可能会提供服务的地方都关了,那么这个接口是不是就不会调用了呢?

具体方法

我们先通过普通方式加载cesium

const viewer = new Cesium.Viewer('cesiumContainer')
复制代码

然后将其地图服务替换为arcgisonline服务:

const viewer = new Cesium.Viewer('cesiumContainer',{
imageryProvider:new Cesium.ArcGisMapServerImageryProvider({
    url: 'https://server.arcgisonline.com/arcgis/rest/services/World_Terrain_Base/MapServer'
         })
})
复制代码

刷新页面,发现endpoint接口仍然存在。原因是我们还调用了其他cesium的服务工具,我们把这些工具全部关闭:

const viewer = new Cesium.Viewer('cesiumContainer', {
        animation: true, // 是否显示时间轴动画
        baseLayerPicker: false,
        homeButton: false,
        geocoder: false,
        timeline: false,
        fullscreenButton: false,
        sceneModePicker: false,
        navigationHelpButton: false,
        imageryProvider:new Cesium.ArcGisMapServerImageryProvider({
            url: 'https://server.arcgisonline.com/arcgis/rest/services/World_Terrain_Base/MapServer'
        }),

    });
复制代码

注意:以上所有项目必须全部关闭才可以。
这时候,奇迹发生了:

4.png

endpoint接口没有了!

此时,如果有离线部署需求,将imageryProvider中的地图替换为离线就OK了

© 版权声明
THE END
喜欢就支持一下吧
点赞0 分享