Appearance
概述
Cesium 中的 实体(Entity) 支持将属性设置为动态值,而不是固定静态数据。通过使用 Cesium.CallbackProperty,你可以让实体在每一帧渲染时重新计算属性,实现实时变化的效果。
CallbackProperty第一个参数是回调函数,第二个参数是一个布尔值: false:表示这个属性是动态的,Cesium 每一帧都重新调用回调函数;true:表示这个属性是静态的,Cesium 只调用一次,不会再更新。
javascript
let length = 40000.0
viewer.entities.add({
position: Cesium.Cartesian3.fromDegrees(121.47, 31.23, 100),
cylinder: {
length: new Cesium.CallbackProperty(() => {
length += Math.sin(Date.now() / 500) * 500 // 周期性伸缩
return length
}, false),
topRadius: 20000.0,
bottomRadius: 20000.0,
material: Cesium.Color.GREEN.withAlpha(0.5),
outline: true,
outlineColor: Cesium.Color.BLACK,
},
})
let offset = 0
viewer.entities.add({
position: Cesium.Cartesian3.fromDegrees(123.47, 31.23, 100),
corridor: {
positions: new Cesium.CallbackProperty(() => {
offset += 0.001
return Cesium.Cartesian3.fromDegreesArray([
123.47 + offset, 31.23,
122.47 + offset, 31.23,
122.47 + offset, 30.23,
])
}, false),
width: 20000.0,
material: Cesium.Color.RED.withAlpha(0.5),
},
})