2016-05-28 9 views
3

私はセシウムでCZMLファイルをロードしています。また、 "myid"というIDのポリゴンをクリックすると、複数のポリゴン(myid_1、myid_2、myid_3など)をハイライトしたいしかし、他のポリゴンのエンティティオブジェクトに色の変更を処理させないように処理することができません。 クリックハンドラの場合は以下の通りです。多角形のIDを知っていれば、多角形の材質を更新する方法は?

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); 

クリックで他の関連ポリゴンを処理するにはどうすればよいですか?どんな助けもありがとうございます。

答えて

1

私はその答えをcesiumjs forumに見つけました。要するに

viewer.dataSources.get(0).entities.getById('myid_'+i).polygon.material = colorProperty;