首页 / 浏览问题 / 三维GIS / 问题详情
建筑层要设置下可见
57EXP 2021年05月12日
建筑层要设置下可见   这个属性是什么呀?要设置建筑层可见
vue3中渲染场景数据,要设置建筑层可见
(新手描述不太准确请见谅奥)

1个回答

您好,如果后期还有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

jjz
4,720EXP 2021年05月12日

不好意思,请问是这样嘛?好像页面还是建筑还是没有显示出来,麻烦啦

是这样用吗?

请问您用的什么框架写的,为什么全部带着window?一般模型默认是可见的,不会不可见,请问您切缓存了吗?
使用的是vue3,我看文档说带window加载性能会好一点,数据是已经处理好得,我们现在需要做一个夜景模式,我百度了下说模型图层默认是不可见的,所以设置夜景的时候,需要开启下可见,可是我好像还是没弄成可见
Vue3 只是需要把Cesium和viewer挂在window上,不是所有代码前面都要带window。类似window.viewer=viewer;(您初始化好的viewer)然后在其他的代码部分直接用viewer就可以。您参考的文章可以发一下吗,不太清楚图层默认不可见指什么。


这些是给的一些参考和需求,害,我描述的也确实不太清晰,麻烦您这边了

首先,推荐您快速学习一下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

嗯嗯呢  太麻烦您了 非常感谢
...