Cesium中的entities可以隨時間變化長度高度,主要依賴於CallbackProperty函數。 因為使用CallbackProperty,cesium中一切可視化的要素都可以與時間聯繫起來。 定義:new Cesium.CallbackProperty (callback, isConst ...
![](https://img2023.cnblogs.com/blog/3074311/202302/3074311-20230218190639803-1279097289.png)
Cesium中的entities可以隨時間變化長度高度,主要依賴於CallbackProperty函數。
因為使用CallbackProperty,cesium中一切可視化的要素都可以與時間聯繫起來。
定義:new Cesium.CallbackProperty (callback, isConstant)
callback:評估屬性時要調用的函數
isConstant:每次回調函數返回相同值時,為 true,如果值將更改,則為false
CallbackProperty是一個類,其值由回調函數延遲計算。也就是說它在不斷地自我調用,每當其返回的對象有改變,就拋出改編後的值。
利用這種特性,我們就可以在定義材質時,用CallbackProperty生成動態的對象賦值給材質參數,就可以得到動態材質的效果。
說白了,new Cesium.CallbackProperty(callback, isConstant) 就是一個返回的值,而這個值取決於callback函數返回的值。
該函數通常這樣定義:function callback(time, result),返回的值是 時間+位置或長度。
// CallbackProperty 中 回調函數 不一定要和時間掛鉤 也可以是通過事件去控制 let positions = [] viewer.entities.add({ polyline: { positions: new Cesium.CallbackProperty(() => positions, false), width: 5, arcType: Cesium.ArcType.RHUMB, material: Cesium.Color.GREEN, } }); // 通過add 事件去改變positions 這樣也可以改變entities function add() { positions.push(...) }