Class: DynamicLayer3D

DynamicLayer3D

new 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

enableLocalOffsetboolean

是否允许模型局部偏移(模型自带偏移矩阵)

readonly groupObject

获取动态图层的所有模型分组集合

maxVisibleAltitudeNumber

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

readonly typeString

获取该图层类型标识

updateIntervalNumber

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

visibleBoolean

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

Methods

deprecated clear()

deprecated clearAll()

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]);

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异常

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

setPolygonOffset(url, factor, units)

设置多边形偏移

Name Type Description
url String

模型组URL

factor Number

偏移斜率因子,默认为0

units Number

偏移单位,默认为0

Example
layer.setPolygonOffset('XXX', -1,-1);

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)数组

See:
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);