怎么移除所有图层

0 投票

要做一个地图切换的功能 

是根据后台的数据(mapid)来进行地图的切换

那么在切换3维地图的时候,首先应该移除之前所有的场景 然后再重新加载新的地图

请问怎么做到移除之前的场景呢

if (temp===1){
  /*  $('#cesiumContainer').remove();
  //是这样移除之前的场景嘛?试了不行
    var viewer = new Cesium.Viewer('cesiumContainer');
    var scene = viewer.scene;*/
    // var promise = scene.open("http://10.108.251.36:8899/iserver/services/3D-f1-f1/rest/realspace");
    //加载新的地图
}
12月 1, 2020 分类:  208次浏览 | 用户: zhouzheng (6 分)

1个回答

0 投票
你好,scene.layers.removeAll();
12月 1, 2020 用户: weizhonrun 名扬四海 (1,122 分)

position:55 Uncaught TypeError: Cannot read property 'layers' of undefined

您好 这是我前端 报得错 

后端得代码是

function getDataFromBack() {
    $.ajax({
        type: "get",
        url: "/find",
        dataType: "json",
        data: {},
        success: function (data) {
            var  temp= data[0].mapID;
            console.log(data);
            if (temp!==mapId){
                if (temp===1){
                    //todo 将之前的图层remove,然后加载新的地图
                    scene.layers.removeAll();
                    var viewer = new Cesium.Viewer('cesiumContainer');
                    var scene = viewer.scene;
                    var promise = scene.open("http://10.108.251.36:8899/iserver/services/3D-f1-f1/rest/realspace");
                    console.log("llll");
                }
            }
我是想要切换地图 将之前的地图清楚掉 就是之前的viewer scene promise  然后再重新加载新的地图
你这边是不是直接使用了layers.removeALL();呢,如果是这样的话会报这个错误的;你使用scene.layers.removeAll();

我这边上面的代码就是 

  scene.layers.removeAll()呀

我想要移除的东西是这3个

var viewer = new Cesium.Viewer('cesiumContainer');

var scene = viewer.scene;

var promise = scene.open("http://10.108.251.36:8899/iserver/services/3D-Export_Output-3dmap011/rest/realspace");

这3个就是原来得地图资源

就是想要切换地图 就得先把之前得移除掉

我之前加载地图时候好像没有用到scene.layers

你的var viewer = new Cesium.Viewer('cesiumContainer');指的是你现在创建了一个viewer容器,第二行指的是新建了一个场景,第三行是你添加了你的服务里面的所有图层,你现在要移除这些全部仅仅添加二维的地图吗
还有,你的移除都在添加之后,都没添加上去的时候layer就是undefined
就是想做一个地图切换的功能 根据后台的mapID切换对应的地图资源 我是每一秒从后台获取一次数据  然后根据数据来进行地图切换 如果不移除之前的地图资源的话 每一秒就会加载一次地图 网页会非常非常卡  感谢大佬耐心回答,如果方便的话可以加我微信 17380145812 想详细的向大佬请教~
这个代码是默认释放资源的
...