更新Cesium回调属性导致实体闪烁

2024-04-04

这是一些可以粘贴到铯沙堡中的代码。

它将一个实体添加到地图中,然后每秒更新位置属性的 CallbackProperty。每次更新时实体都会闪烁。

var viewer = new Cesium.Viewer('cesiumContainer');
var position = new Cesium.Cartesian3.fromDegrees(-114.0, 40.0, 300000.0);
var constant = false;
var blueBox = viewer.entities.add({
    name : 'Blue box',
    position: new Cesium.CallbackProperty(getPos, constant),
    box : {
        dimensions : new Cesium.Cartesian3(400000.0, 300000.0, 500000.0),
        material : Cesium.Color.BLUE
    }
});

function getPos() {
    return position;
}

function setPosCallback() {
    constant = !constant;
    blueBox.position.setCallback(getPos, constant);
}

setInterval(setPosCallback, 1000);

有没有办法更新此类属性而不导致实体闪烁?也许使用 requestAnimationFrame 或者其他什么?

我需要使用回调属性来绘制形状,但是一旦绘制形状,我希望它们使用常量属性。我也尝试过更改 isConstant 属性,但它是只读的。


我意识到这个问题是很久以前的问题,但看起来问题是这行“constant =!constant;”。只需删除它即可修复闪烁。

编辑:我误解了这个问题,在常量和回调之间切换时我也遇到了闪烁问题。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

更新Cesium回调属性导致实体闪烁 的相关文章