您好,如果后期还有WebGL这个产品的问题,可以直接设置分类为三维GIS。根据您目前需要设置模型图层可见的描述,推测是需要控制图层或者图层中的一部分模型组件显隐。
1 如果需要设置整个S3M图层显隐,直接设置layer.visible = false/true即可: http://support.supermap.com.cn:8090/webgl/docs/Documentation/S3MTilesLayer.html?classFilter=S3MT#visible 2. 如果需要设置模型图层中,某些组件的显隐,且筛选条件在属性表中有,可以通过SQL查询来获取对应的模型ID,然后通过这个方法设置这些模型的显隐: http://support.supermap.com.cn:8090/webgl/docs/Documentation/S3MTilesLayer.html?classFilter=S3MT#setObjsVisible SQL查询: http://support.supermap.com.cn:8090/webgl/examples/webgl/editor.html#getFeatureBySQL
不好意思,请问是这样嘛?好像页面还是建筑还是没有显示出来,麻烦啦
是这样用吗?
这些是给的一些参考和需求,害,我描述的也确实不太清晰,麻烦您这边了
首先,推荐您快速学习一下WebGL,可以了解整个模型发布和代码编写流程,我们的GIS学堂提供了免费视频课程,您可直接查看第五章的内容: http://edu.supermap.com/#/lessonInfo?id=4c4b35a066fe47969e888b5c1b2f8894
图层默认是可见的,除非有特殊设置。根据截图推测可能是在iDesktop中的场景给模型图层设置了不可见,所以scene.open加载的时候可能看不到。如果是我推测的情况,您首先需要用layer.find来找到这个不可见的图层,然后按照示例代码来设置S3MTilesLayer.visible=true; 示例中的S3MTilesLayer不是绝对值,只是一个代称,可以任意命名。您可以参考以示例的97行 var layer = scene.layers.find('Config');来获得被隐藏的建筑图层,这段代码需要您写在Cesium.when中,参考示例写法。代码中Config指发布在iServer的三维服务,建筑缓存的图层名,需要您自己找一下或者问一下提供数据的人。
示例: http://support.supermap.com.cn:8090/webgl/examples/webgl/editor.html#S3MTiles_suofeiya 根据图层名找对应图层API: http://support.supermap.com.cn:8090/webgl/docs/Documentation/Layers.html?classFilter=LAYER#find