在铯中,如何随时间动态更新标签?

In cesium, how do you dynamically update a label over time?

我有一个与铯中的 billboard/marker 关联的标签,我希望随着时间的推移 'update'。我尝试使用 setTimeout 来增加一个变量 'count' ,我将其作为标签分配给标记......但它不会增加。有什么特别的事情我需要做或错过了吗?

您应该能够通过更改文本来更新标签 属性。

entity.label.text = 'new text';

这是一个完整的例子:

var viewer = new Cesium.Viewer('cesiumContainer');

var image = new Image();
var entity;
image.onload = function() {
    entity = viewer.entities.add({
        position : Cesium.Cartesian3.fromDegrees(-75.1641667, 39.9522222),
        billboard : {
            position : Cesium.Cartesian3.fromDegrees(-75.1641667, 39.9522222),
            scaleByDistance : new Cesium.NearFarScalar(1.5e2, 5.0, 1.5e7, 0.5),
            image : image
        },
        label : {
            text : 'Label on top of scaling billboard',
            font : '20px sans-serif',
            showBackground : true,
            horizontalOrigin : Cesium.HorizontalOrigin.CENTER,
            pixelOffset : new Cesium.Cartesian2(0.0, -image.height),
            pixelOffsetScaleByDistance : new Cesium.NearFarScalar(1.5e2, 3.0, 1.5e7, 0.5)
        }
    });
    viewer.zoomTo(viewer.entities);
};
image.src = '../images/facility.gif';

var counter = 0;
viewer.scene.postUpdate.addEventListener(function(){
    if(!Cesium.defined(entity)) {
        return;
    }
    counter += 0.04;
    if(Math.cos(counter) > 0){
        entity.label.text = "On";
    } else {
        entity.label.text = "Off";
    }
});

a live version 在 Sandcastle 上。