属性变化

Property机制

Property表示一个可以随时间变化的值,Property是所有Property类型的基类。

Property有众多子类,用于实现不同效果;例如:CallbackProperty可通过实时回调动态更新实体位置、SampleProperty可将属性值与时间关联等;

Property基类有如下方法:

getValue:用于获取某个时间点的属性值,Cesium就是通过调用getValue类似的一些函数来感知Property的变化的。

isConstant:用来判断该属性是否会随时间变化,是一个布尔值。Cesium会通过这个变量来决定是否需要在场景更新的每一帧中都获取该属性的数值,从而来更新三维场景中的物体。

definitionChanged:是一个事件,可以通过该事件来监听该Property自身所发生的变化,比如数值发生修改。

equals:是一个方法,用来检测属性值是否相等。

CallbackProperty

CallbackProperty 回调属性可动态修改实体的颜色、厚度等;

datasource.entities.add({
      id: 'polygontest',
      name: 'Wyoming',
      polygon: {
        hierarchy: Cesium.Cartesian3.fromDegreesArray([          
          111.047063, 40.998429,
          111.047063, 42.000709,
          111.047063, 44.476286,
          111.05254, 45.002073,
          109.080842, 45.002073]),
        height: 100,
        extrudedHeight:new Cesium.CallbackProperty(()=>{return exheight},false),
        material:new Cesium.ColorMaterialProperty(new Cesium.CallbackProperty(changecolor,false)),
        outline: true,
        outlineColor:Cesium.Color.BLUE,
        outlineWidth:1,
        fill: true
      }
    });
    function changecolor(){
      return new Cesium.Color(Math.random(),Math.random(),Math.random())
    }

SampledProperty 

SampledProperty不仅可以使属性与时间关联,还可以根据指定的插值算法和插值程度进行插值计算;


优质资料

https://blog.csdn.net/weixin_42776111/article/details/125479398

https://zhuanlan.zhihu.com/p/50534090


举报

© 著作权归作者所有


0