前言:
我最近在做一个关于3维地图的项目,项目中涉及到Cesium,isServer超图的一些知识,今天总结一下scene.open()的用法。
viewer.scene.open() 打开iserver场景服务下所有图层。同时这个方法会自带一个自动定位功能,具体实现不深究。
打开iserver场景服务下所有图层。
Name | Type | Description |
---|---|---|
url | String | 服务url。 |
Returns:
返回promise异步加载对象。
例子:
var promise = scene.open('http://localhost:8090/iserver/services/3D-BIM3/rest/realspace');
promise.then(function(layers){});
如果有多个则可以时用all的方法。
Cesium.when.all([promise...], function (layers) {
//所有图层都打开才执行
//可以做一些判断,隐藏一些图层.....
if(layers.name("")==""){//判断图层名称是否相等,相等就隐藏,当然还可设置其他属性
layers.visible=false
}
})
可以利用layer.visible属性来隐藏图层,但是有些情况下,不想隐藏图层就需要用到
viewer.scene.layers.remove(需要移除图层的名称);
这两个方法都可隐藏图层,但是区是,visible只是视图上隐藏而已,viewer中还有其对象,remove是直接把viewer中的对象移除了。根据使用场景来使用。
如遇到其他问题可参考:https://www.cnblogs.com/jyybeam/p/11126481.html
具体使用可参考api:http://support.supermap.com.cn:8090/webgl/Build/Documentation/Scene.html?classFilter=scene