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

时间:2018-09-13 05:11:15

标签: cesium

我有一个与铯中的广告牌/标记相关联的标签,我想随时间进行“更新”。我尝试使用setTimeout来递增作为标签分配给标记的变量“ count”……但不会增加。我需要做些特别的事情还是丢失吗?

1 个答案:

答案 0 :(得分:0)

您只需更改标签的text属性就可以更新它。

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在沙堡上。