在Cesium中,CallbackProperty
是一种非常有用的特性,可以用来动态更新实体的属性,如位置、方向、高度等。CallbackProperty
允许你在指定的时间点计算属性值,这样就可以实时地改变实体的状态而不需要频繁地重新设置整个属性。
下面是一个使用 CallbackProperty
来创建动态更新位置的实体的例子:
onMounted(()=>{
Cesium.Ion.defaultAccessToken = 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJqdGkiOiI1NmQ2YjQwMC0wOTAzLTQxYWItODliMC1iYTFjMzdiM2U4YzEiLCJpZCI6MjMyMjU4LCJpYXQiOjE3MjI1ODkzNzV9._ql6Oa6Tls-APS5Ag0692Co91xG_QqcEmd4sAo8azJ8'
viewer = new Cesium.Viewer('container',{
// terrainProvider : Cesium.createWorldTerrain(),
imageryProvider : new Cesium.UrlTemplateImageryProvider({
url : 'https://server.arcgisonline.com/ArcGIS/rest/services/World_Imagery/MapServer/tile/{z}/{y}/{x}'
})
})
// 创建一个CallbackProperty来定义位置
var positionCallbackProperty = new Cesium.CallbackProperty(()=>{
var lat = 117.0 + Math.sin(Cesium.JulianDate.now().secondsOfDay) * 10.0
var lon = 40.0 + Math.cos(Cesium.JulianDate.now().secondsOfDay) * 5.0
return Cesium.Cartesian3.fromDegrees(lat, lon)
},false)
// 创建实体并使用CallbackProperty
var dynamicEntity = viewer.entities.add({
name : 'Dynamic Entity',
position : positionCallbackProperty,
point : {
pixelSize : 10,
color : Cesium.Color.BLUE
}
});
})