首页 / 浏览问题 / 三维GIS / 问题详情
怎么隐藏地形数据
122EXP 2022年03月07日

使用产品:SuperMap iServer 10i(V10.1.2)

操作系统:win10 x64
数据类型: 文件型

如图数据格式 想控制DEM的隐藏显示。
参考这个例子使用viewer.terrainProvider.visible = false;不管用。
http://support.supermap.com.cn:8090/webgl/examples/webgl/editor.html#terrainAndImagery

1个回答

您好,示例中有这么一段,

var viewer = new Cesium.Viewer('cesiumContainer',{
        //创建地形服务提供者的实例,url为SuperMap iServer发布的TIN地形服务
        terrainProvider : new Cesium.CesiumTerrainProvider({
            url : URL_CONFIG.SiChuan_TERRAIN,
            isSct : true,//地形服务源自SuperMap iServer发布时需设置isSct为true
            invisibility:true
        }),
    });

您这边是否有完整的建立地形服务呢?
4,151EXP 2022年03月07日
我的工作空间截图了,我只是打开了工作空间。并没有建立地形服务。怎么实现我的工作空间中的名字是DEM图层的隐藏显示?
不太明白您的意思。

您之前所说的参考示例是在WebGL中去隐藏,那么就需要您这边单独发布一个地形服务的缓存,该缓存在前端建立地形服务。

如果您只是想在桌面隐藏地形图层,您直接点击对应图层左侧的眼睛就可以隐藏了。

如果您是想发布之后没有地形图层,您把这个图层删除就可以了。
我是在一起发布的,地形和其他模型都在一个工作空间。像我这样发布是无法隐藏的是吗?
必须要单独发布一个地形服务 然后用下面的代码加载进来,再进行隐藏显示
var viewer = new Cesium.Viewer('cesiumContainer',{
        //创建地形服务提供者的实例,url为SuperMap iServer发布的TIN地形服务
        terrainProvider : new Cesium.CesiumTerrainProvider({
            url : URL_CONFIG.SiChuan_TERRAIN,
            isSct : true,//地形服务源自SuperMap iServer发布时需设置isSct为true
            invisibility:true
        }),
    });

您好,我测试了一下,不单独发布的话也行,但是还是需要建立一个地形服务,路径的话放在您的缓存下的datas下的地形图层名。示例中的话,URL_CONFIG.SiChuan_TERRAIN路径如下: http://www.supermapol.com/realspace/services/3D-dixingyingxiang/rest/realspace/datas/DatasetDEM

建立地形服务?不太明白,只能是隐藏地形服务是吗?不能用隐藏图层的形式隐藏地形图层吗?比如使用代码:
 

if (mylayers[i].tablename == "DEM" ) {
    mylayers[i].visible = false;
}

建立地形服务就是代码

var viewer = new Cesium.Viewer('cesiumContainer',{
        //创建地形服务提供者的实例,url为SuperMap iServer发布的TIN地形服务
        terrainProvider : new Cesium.CesiumTerrainProvider({
            url : URL_CONFIG.SiChuan_TERRAIN,
            isSct : true,//地形服务源自SuperMap iServer发布时需设置isSct为true
            invisibility:true
        }),
    });

把 URL_CONFIG.SiChuan_TERRAIN 换成您发布的服务下的http://localhost:8090/iserver/services/3D-hyy_middle/rest/realspace/datas/地形图层名就行了。

示例里面写的很明白了其实

...