代码之家  ›  专栏  ›  技术社区  ›  Rolando

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

  •  2
  • Rolando  · 技术社区  · 6 年前

    我有一个与铯元素广告牌/标记相关的标签,我想随着时间的推移“更新”。我试着用setTimeout来增加一个变量'count',我把它作为标签赋给一个标记。。。但不会增加。有什么特别的事情我需要做或错过?

    1 回复  |  直到 6 年前
        1
  •  0
  •   Omar Shehata    6 年前

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

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