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 urlString 模型url
idsArray 动态实例ids
Example
layer.clearState('ship.s3m',[1]); -
deleteObjects(url, ids)
-
根据模型url和动态实例ID,删除指定类型的对应ids的实例对象,下次再次更新相同id的状态,将不会在渲染对应id的对象
Name Type Description urlString 模型url
idsArray 动态实例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 urlString 模型组URL
factorNumber 偏移斜率因子,默认为0
unitsNumber 偏移单位,默认为0
Example
layer.setPolygonOffset('XXX', -1,-1); -
setUnSelected()
-
取消所有实例的选中状态
-
setVisibleByUrl(modelUrl, isVisible)
-
根据url设置该图层下指定模型类型的所有实例的可见性
Name Type Description modelUrlString 模型url(指定模型类型)
isVisibleBoolean 是否可见
Example
//设置model.s3m类型的所有实例不可见 layer.setVisibleByUrl('model.s3m',false); -
updateObjectWithModel(url, arrStates)
-
根据指定模型类型(url)更新对象状态信息
Name Type Description urlString 模型类型url
arrStatesArray 状态信息(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);