PolylineGeometryUpdater是一个用于更新Cesium中PolylineGeometry的辅助类。
PolylineGeometryUpdater可以通过对应的Primitive实例来更新PolylineGeometry的位置、颜色等属性。它会在底层检测属性的变化,并将变化应用到Geometry实例中。使用PolylineGeometryUpdater可以方便地实现Polyline对象的实时更新,从而达到交互效果的呈现。
new Cesium.PolylineGeometryUpdater(options);
options参数按照如下定义:
{
entity : entity,
scene : scene,
geometry : geometry,
}
PolylineGeometryUpdater的构造函数参数。
与此 PolylineGeometryUpdater 关联的 entity 实例。
此 PolylineGeometryUpdater 所管理的 PolylineGeometry 实例。
一个布尔值,指示此 PolylineGeometryUpdater 实例的 PolylineGeometry 是否动态更新。
当这个实例不再使用时,调用此方法以释放与之相关的资源。已销毁的实例不应再使用。
boolean PolylineGeometryUpdater.isDestroyed()
返回:
如果 PolylineGeometryUpdater 已被销毁 ,则为 true ;否则为 false。
更新PolylineGeometry。
boolean PolylineGeometryUpdater.update(time)
参数:
返回:
如果一个新的线几何体实例被创建,则为 true ;否则为 false。
返回此 PolylineGeometryUpdater 是在更新中还是没有更新。
boolean PolylineGeometryUpdater.isUpdating()
返回:
如果此 PolylineGeometryUpdater 的更新操作正在进行中,则为 true;
否则,如果关闭更新,则为 false。
PolylineGeometryUpdater.onTerrainChanged.addEventListener(callback);
PolylineGeometryUpdater.onStaticPropertyChanged.addEventListener(callback);
PolylineGeometryUpdater.onDynamicPropertyChanged.addEventListener(callback);
PolylineGeometryUpdater.onGeometryChanged.addEventListener(callback);
以上事件所触发的回调函数都带有如下参数:
var viewer = new Cesium.Viewer('cesiumContainer');
var polyline = viewer.entities.add({
polyline : {
positions : Cesium.Cartesian3.fromDegreesArray([
-75, 35,
-125, 35
]),
width : 10.0,
material : Cesium.Color.RED
}
});
var polylineUpdater = new Cesium.PolylineGeometryUpdater({
entityType : polyline,
scene : viewer.scene,
geometry : polyline.polyline
});
其中,使用了Entity实例来添加了一条折线。然后,我们创建了一个PolylineGeometryUpdater实例,并将其与折线对应的Geometry对象关联。这样,我们就可以使用这个PolylineGeometryUpdater实例来更新折线的属性了。