webgl使用layer.setObjsColor无法改变模型中某一构件的颜色

0 投票

使用产品:iserver10i 操作系统:win10

数据类型: 文件型

问题详细描述:我想通过layer.setObjsColor方法来设置某一构件的颜色,传入构件的SMID值后,发现并没有用,以下为我的代码:

Cesium.when(promise,function (layers) {
        var layer = scene.layers.find('combination')//地铁、别墅组合模型
        console.log(layer)
        var color = Cesium.Color.RED
        layer.setObjsColor([20],color)
        layer.setQueryParameter({
          url: 'http://localhost:8091/iserver/services/data-combination/rest/data',
          dataSourceName: 'combination',
          isMerge: true,
          keyWord: 'SMID'
        })
      })

我尝试打印了一下该图层layer的信息,发现里面有该构件的着色信息,但是为什么不显示呢?还请赐教!

12月 1, 2020 分类:  181次浏览 | 用户: qzg 初出茅庐 (38 分)

1个回答

0 投票
 
已采纳
您好,我刚刚测试是有效果的,这里的ID值是图元ID,也就是您鼠标选中模型的ID值。
12月 2, 2020 用户: KeineAhnung 名扬四海 (1,542 分)
采纳于 12月 2, 2020 用户:qzg
您好,确实没看见效果,id我就是设的图元的smid

以下为效果图,选中的图元smid为387,但是颜色未变(原始颜色为灰色),选中后的颜色为系统默认颜色

您鼠标选中这个模型时,infobox里显示的ID是多少
我把传入的smid改为387了,我点击的这个图元smid就是387

我通过layer.getObjsColor()这个方法也确实看见了该图元的颜色属性,但是就是未显示颜色:

能留个QQ吗,远程看一下。
好滴,2411812774
...