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(...) }
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/544301.html
標籤:JavaScript
