DynamicLayer3D

new Cesium.DynamicLayer3D(context, urls)

动态图层,一个动态图层可以包含多种类型的模型,每种模型又能包含多个实例,每个实例以一定刷新间隔更新状态信息DynamicObjectState,从而达到动态效果。
Name Type Description
context Context webgl context对象。
urls Array 模型url数组。
Example:
var uls = ['model1.s3m','model2.s3m'];
var layer = new DynamicLayer3D(context,urls);
scene.primitives.add(layer);

Members

enableLocalOffset : boolean

设置是否支持模型局部偏移(模型自带偏移矩阵)。

readonlygroup : Object

获取动态图层的所有模型分组集合{url:object}。

maxVisibleAltitude : Number

获取或者设置动态图层的最大可见高度。

readonlytype : String

获取该图层类型标识。

updateInterval : Number

获取或者设置动态图层的刷新间隔时间,单位ms。

visible : Boolean

获取或者设置动态图层的可见性。

Methods

clearAllState()

清除该动态图层所有动态实例对象的状态信息,在下次更新状态之前,所有动态实例都不被渲染。
Example:
layer.clearAllState();

clearState(url, ids)

根据模型url和动态实例ID,清除该类型模型指定ID的动态实例的状态信息,下次更新状态之前,该实例不被渲染。
Name Type Description
url String 模型url。
ids Array 动态实例ids。
Example:
layer.clearState('ship.s3m',[1]);

deleteAllObjects()

删除该动态图层所有动态实例对象,在下次更新状态之前,所有动态实例都不被渲染。
Example:
layer.deleteAllObjects();

deleteObjects(url, ids)

根据模型url和动态实例ID,删除指定类型的对应ids的实例对象,下次再次更新相同id的状态,将不会在渲染对应id的对象。
Name Type Description
url String 模型url。
ids Array 动态实例ids。
Example:
layer.deleteObjects('ship.s3m',[1]);

destroy()undefined

释放webgl资源。

一旦释放对象资源, 它将不能被使用;调用任何方法将会抛出DeveloperError异常。

Returns:
Example:
layer = layer && layer.destroy();
See:
  • DynamicLayer3D#isDestroyed

setPickEnable(url, enable)

根据动态图层的url设置url对应的模型实例是否可选。
Name Type Description
url String 动态图层的url。
enable Boolean 其值为true时可选,为false时不可选。

setUnSelected()

取消所有实例的选中状态

setVisibleByUrl(modelUrl, isVisible)

根据url设置该图层下指定模型类型的所有实例的可见性。
Name Type Description
modelUrl String 模型url(指定模型类型)。
isVisible Boolean 是否可见。
Example:
//设置model.s3m类型的所有实例不可见。
layer.setVisibleByUrl('model.s3m',false);

updateObjectWithModel(url, arrStates)

根据指定模型类型(url)更新对象状态信息。
Name Type Description
url String 模型类型url。
arrStates Array 状态信息(DynamicObjectState)数组。
Example:
//更新model.s3m类型实例的状态信息
var states = [];
states.push(new DynamicObjectState({id : 1,longitude : 100,latitude : 10}));
states.push(new DynamicObjectState({id : 2,longitude : 101,latitude : 11}));
layer.updateObjectWithModel('model.s3m',states);
See: