DynamicLayer3D

new SuperMap3D.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

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

filterMode : Mode

获取或设置子对象过滤模式,默认为距离模式。

filterPixel : Number

获取或设置子对象过滤像素,默认为0。

readonlygroup : Object

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

maxVisibleAltitude : Number

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

maxVisibleDistance : Number

获取或设置对象过滤的最大可见距离。

shadowType : ShadowType

获取或者设置阴影模式。默认值为NONE。
Default Value: NONE

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

getCullEnabled(url)boolean

获取是否开启单双面渲染。
Name Type Description
url String 模型url。
Returns:
是否开启单双面渲染。

setCullEnabled(url, enabled)

设置是否开启单双面渲染。
Name Type Description
url String 模型url。
enabled boolean 是否开启单双面渲染。

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: