|
|
2 år sedan | |
|---|---|---|
| .. | ||
| README.md | 2 år sedan | |
在三维场景中添加动态要素,让场景能够动起来,更加贴近真实世界的运行
天气效果
let weather = new DC.Weather(viewer)
构造函数
{Viewer} viewer:3D 场景weather{Rain} rain:雨天 readonly{Snow} snow:雪天 readonly{Fog} snow:雾天 readonly{Cloud} cloud:云 readonly雨天效果
weather.rain.enable = true
weather.rain.speed = 2
{Boolean} enable:是否启用{Number} speed:速度雪天效果
weather.snow.enable = true
weather.snow.speed = 2
{Boolean} enable:是否启用{Number} speed:速度雾天效果
weather.fog.enable = true
weather.fog.fogColor = DC.Color.BLACK
{Boolean} enable:是否启用{Color} fogColor:颜色,{Object} fogByDistance:距离可见,默认: { near: 10, nearValue: 0, far: 2000, farValue: 1.0 }云效果
weather.cloud.enable = true
weather.cloud.rotateAmount = 0.02
{Boolean} enable:是否启用{Number} rotateAmount:移动增量,可为负数效果类
let effect = new DC.Effect(viewer)
构造函数
{Viewer} viewer:3D 场景effect{BlackAndWhite} blackAndWhite:黑白 readonly{Bloom} bloom:泛光 readonly{Brightness} brightness:明亮 readonly{DepthOfField} depthOfField:景深 readonly{LensFlare} lensFlare:镜头耀斑 readonly{Night} night:夜视 readonly{Silhouette} silhouette:描边 readonly黑白效果
effect.blackAndWhite.enable = true
{Boolean} enable:是否启用{Number} gradations:强度{Array} selected:设置后期作用的覆盖物泛光效果
effect.bloom.enable = true
{Boolean} enable:是否启用{Number} contrast:对比度{Number} brightness:亮度{Number} glowOnly:只发光{Number} delta:Delta{Number} sigma:Sigma{Number} stepSize:StepSize{Array} selected:设置后期作用的覆盖物明亮效果
effect.brightness.enable = true
{Boolean} enable:是否启用{Number} intensity:强度{Array} selected:设置后期作用的覆盖物景深效果
effect.depthOfField.enable = true
{Boolean} enable:是否启用{Number}} focalDistance:焦距{Number} delta:Delta{Number} sigma:Sigma{Number} stepSize:StepSize{Array} selected:设置后期作用的覆盖物镜头耀斑效果
effect.lensFlare.enable = true
{Boolean} enable:是否启用{Number}} intensity:强度{Number} distortion:扭曲度{Number} dirtAmount:分散度{Number} haloWidth:光圈宽度{Array} selected:设置后期作用的覆盖物夜视效果
effect.night.enable = true
{Boolean} enable:是否启用{Array} selected:设置后期作用的覆盖物描边效果
effect.silhouette.enable = true
{Boolean} enable:是否启用{Color} color:颜色{Number} length:长度{Array} selected:设置后期作用的覆盖物场景动画基类
:::warning 该类无法实例化 :::
开始动画
返回值 this
stop()
停止动画
this点位环绕,继承于Animation
let aroundPoint = new DC.AroundPoint(viewer, '120.121, 31.12')
aroundPoint.start()
构造函数
{Viewer} viewer:3D 场景{Position|String|Array} position:点位{Object} options:optionsaroundPoint//options(optional)
{
"heading": 0, //偏移角度
"pitch": 0, //翻转角度
"range": 0, //距离
"duration": 0, //间隔,单位:秒,当此值大于0时,callback才会生效
"callback": null, //完成回调函数
"context": null //回调函数执行上下文
}
相机环绕,继承于Animation
let aroundView = new DC.AroundView(viewer)
aroundView.start()
构造函数
{Viewer} viewer:3D 场景{Object} options:optionsaroundView//options(optional)
{
"heading": 0, //偏移角度
"pitch": 0, //俯仰角度
"roll": 0, //翻转角度
"duration": 0, //间隔,单位:秒,当此值大于0时,callback才会生效
"callback": null, //完成回调函数
"context": null //回调函数执行上下文
}
扫描圈,继承于Animation
let circleScan = new DC.CircleScan(viewer, '120, 20', 200)
circleScan.start()
构造函数
{Viewer} viewer:场景{DC.Position} position:位置{Number} radius:半径{Object} options:属性circleScan// 属性参数(optional)
{
"color": DC.Color.BLUE, // 颜色
"speed": 5 // 速度
}
定点巡航,继承于Animation
let flying = new DC.Flying(viewer)
flying.positions = ['121.234,21.212,0,-29', '121.435,21.212,0,-29']
flying.start()
构造函数
{Viewer} viewer:场景{Object} options:optionsflying// 属性参数(optional)
{
"loop": false, //是否循环,
"dwellTime": 3, //驻留时间
"callback": null //回调函数
}
{Array} positions:点位{Array} durations:每个点位的飞行间隔时间,当数组长度为 1 时,每个间隔时间相同,如果不为 1 时,长度必须和点位长度相等开始动画
返回值 this
pause()
暂停
返回值 this
restore()
继续
this地球自转,继承于Animation
let globeRotate = new DC.GlobeRotate(viewer, {
duration: 5,
speed: 1000,
callback: () => {},
})
globeRotate.start()
构造函数
{DC.Viewer} viewer:3D 场景{Object} options:optionsglobeRotate//options(optional)
{
"speed": 12 * 1000, //速度
"duration": 0, //持续时间,当此值大于0时,callback才会生效
"callback": null, //执行完成的回调函数
"context": null //回调函数执行上下文
}
雷达扫描,继承于Animation
let radarScan = new DC.RadarScan(viewer, '120, 20', 200)
radarScan.start()
构造函数
{Viewer} viewer:场景{DC.Position} position:位置{Number} radius:半径{Object} options:属性radarScan// 属性参数(optional)
{
"color": DC.Color.BLUE, // 颜色
"speed": 5 // 速度
}
漫游控制
let rc = new DC.RoamingController(viewer)
构造函数
{Viewer} viewer:3D 场景roamingController添加路径
{RoamingPath} path:路径返回值 this
addPaths(paths)
添加路径数组
{Array<RoamingPath>} paths:路径数组返回值 this
removePath(path)
移除路径
{RoamingPath} path:路径返回值 path
getPath(id)
根据唯一标识获取路径
{String} id:唯一标识返回值 path
getPaths()
获取所有路径
返回值 array
activate(path, viewOption)
激活漫游
{RoamingPath} path:路径{String} viewOption:漫游参数this// 漫游参数(可选)
{
"pitch": 0, // 俯仰角
"range": 1000 // 距离
}
结束漫游
返回值 this
clear()
移除所有路径
this漫游路径
let path = new DC.RoamingPath('120.121,32.1213;121.132,32.1213', 20)
rc.addPath(path)
构造函数
{String|Array<Position|Number|String|Object>} positions:坐标串{Number} duration:间隔时间,单位:秒{String} pathMode:路径模式:speed(匀速) / time(等时)roamingPath{String} pathId:唯一标识 readonly{String} id:业务唯一标识{String|Array<Position|Number|String>} positions:坐标串{Number} duration:间隔时间,单位:秒{String} pathMode:路径模式:speed(匀速) / time(等时){String} state:状态 readonly键盘漫游
let kr = new DC.KeyboardRoaming(viewer)
kr.enable = true
构造函数
{Viewer} viewer:3D 场景keyboardRoaming{Boolean} enable:是否启用{Number} moveRate:移动变化率:100{Number} rotateRate:旋转变化率:0.01历史轨迹控制
let tc = new DC.TrackController(viewer)
构造函数
{Viewer} viewer:3D 场景trackController添加轨迹
{Track} track:轨迹返回值 this
addTracks(tracks)
添加轨迹数组
{Array<Track>} tracks:轨迹数组返回值 this
removeTrack(track)
移除轨迹
{Track} track:轨迹返回值 path
getTrack(id)
根据业务唯一标识获取轨迹
{String} id:业务唯一标识返回值 track
getTracks()
获取所有轨迹
返回值 array
play()
播放
返回值 this
pause()
暂停
返回值 this
restore()
继续播放
返回值 this
viewTrack(track, viewOption)
跟踪某一条路径
{Track} track:路径{String} viewOption:配置信息this// 属性参数(可选)
{
"mode": null, // 视角模式:DC.TrackViewMode
"pitch": 0, // 俯仰角,第一视角有效
"range": 1000 // 距离
}
取消跟踪某一条轨迹
{Track} track:路径返回值 this
clear()
移除所有路径
this轨迹
let tc = new DC.TrackController(viewer)
let track = new DC.Track('120.121,32.1213;121.132,32.1213', 20)
tc.addTrack(track)
构造函数
{String|Array<Position|Number|String|Object>} positions:坐标串{Number} duration:间隔时间,单位:秒{Function} callback:每一个点位到达回调函数,参数有:position(位置信息),isLast(是否为最后的点位){Object} options: 配置参数track//配置参数(可选)
{
"clampToGround": false, // 是否贴地
"clampToTileset": false, // 是否贴物
"interpolationType": "Linear", // 插值类型:Linear、Hermite、Lagrange
"interpolationDegree": 2, // 插值度数
"endDelayTime": 0.5,// 结束时间延长时间,单位:秒,
"headingOffset":0,//旋转偏移
}
{String} trackId:唯一标识 readonly{String} id:业务唯一标识{String|Array<Position|Number|String|Object>} positions:坐标串{Number} duration:间隔时间,单位:秒{Date} startTime:开始时间,设置后会独立于控制器的开始时间{String} state:状态 readonly添加点位
{Position|Array|String|Object} position:点位{Number} duration:间隔,单位:秒返回值 this
setModel(modelUrl,style)
设置模型
{String} modelPath:模型路径{Object} style:样式,详情参考:DC.Model返回值 this
setBillboard(icon,style)
设置图标
{String} icon:图标路径{Object} style:样式,参考:DC.Billboard返回值 this
setLabel(text,style)
设置文本
{String} text:文本{Object} style:样式,参考:DC.Label返回值 this
setPath(visible,style)
设置路径
{Boolean}} visible:是否可见{Object} style:样式,参考:DC.Polylinethis