2016-05-28 20 views
3

Ich lade eine CZML-Datei in Cäsium. Und möchte mehrere Polygone markieren (wie myid_1, myid_2, myid_3), wenn Polygon mit der ID "myid" angeklickt wird. Aber ich kann es nicht verarbeiten, da ich die Entitätsobjekte anderer Polygone nicht zur Verarbeitung seiner Farbänderung bekomme. Ein Click-Handler ist wie folgt.Wie aktualisiere ich Polygon-Material, wenn ich ID von Polygon weiß?

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

Wie kann ich die anderen verwandten Polygone auf Klick verarbeitet bekommen? Jede Hilfe wird geschätzt.

Antwort

1

Ich fand ihre Antwort auf cesiumjs forum.

Kurz:

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