如果我知道多边形的 ID,如何更新多边形材质?

mee*_*een 5 javascript cesium czml

我正在用铯加载一个 CZML 文件。如果单击 id 为“myid”的多边形,并且想要突出显示多个多边形(如 myid_1、myid_2、myid_3)。但是我无法处理它,因为我没有得到其他多边形的实体对象来处理它的颜色变化。点击处理程序如下。

var handler = new Cesium.ScreenSpaceEventHandler(scene.canvas);
handler.setInputAction(function(click) {
    var pickedObject = scene.pick(click.position);
    if (Cesium.defined(pickedObject)) {
        console.log(pickedObject.id instanceof Cesium.Entity);  //returns true
        var colorProperty = Cesium.Color.YELLOW;
        pickedObject.id.polygon.material = new Cesium.ColorMaterialProperty(colorProperty);
    }
}, Cesium.ScreenSpaceEventType.LEFT_CLICK);
Run Code Online (Sandbox Code Playgroud)

如何在单击时处理其他相关多边形?任何帮助表示赞赏。

mee*_*een 3

我在cesiumjs 论坛上找到了答案。

简而言之:

viewer.dataSources.get(0).entities.getById('myid_'+i).polygon.material = colorProperty;
Run Code Online (Sandbox Code Playgroud)