首页 / 浏览问题 / 三维GIS / 问题详情
如何获取addS3MTilesLayerByScp加载后的模型
5EXP 2024年11月27日

使用 addS3MTilesLayerByScp加载完成模型后,通过layer和sence无法获取到加载的模型,这个模型是多段的,现在只能通过点击获取到entity,但是我想主动获取当前模型

1个回答

您好!

您想主动获取的是S3M图层里面的某个模型对象还是获取整个S3M图层呢?

获取整个S3M图层的话,可以使用scene.layers.find(图层名)去获取整个图层

如果是获取S3M图层里面的某个对象的话,一般是通过具体对象的ID实现对模型对象的操作,比如通过setObjsColor(ids, color)方法对图元IDS列表,设置对应图元的颜色,更多方法可以参考API文档:http://support.supermap.com.cn:8090/webgl/Cesium/docs/Documentation/S3MTilesLayer.html

希望可以帮助到您!

1,457EXP 2024年11月27日
就是我有一个隧道的模型,在画模型的时候就在隧道的每个管片都加了一个属性,然后用超图将该模型发布成服务,使用addS3MTilesLayerByScp加载该服务,现在我想主动遍历整个模型所有的管片,拿到管片的属性,但是我发现我在第一步就拿不到这个模型,只能拿到图层。

您第二条所说的应该是我想要的,但是 具体对象的ID  ,这个id是哪里的,我刚才也试验了,还是找不到这个模型
你好,我翻阅了相关问题答案,大概明白超图在做缓存的时候将每个模型内部的每个块加个id,并将相关属性存入到属性表,想获取id和属性对应关系需要调取接口来查询。但是现在又有几个问题,麻烦帮忙解答一下

1.这个属性表在哪里,或者说缓存的时候在哪设置,在超图软件里我没有找到

2.在setObjsColor(ids, color)方法里,超图将每个模型内的组成块称之为对象,那我现在有id,怎么去拿到这个对象的位置信息,我翻阅文档没有找到getObjs这个方法
...