# new AnimationTool(vieweropt, optionsopt)
场景漫游工具
参数:
名称 | 类型 | 默认值 | 描述 |
---|---|---|---|
viewer |
Cesium.Viewer | null | 场景视图,详见Cesium.Viewer |
options |
Object | {} | 额外初始化参数 |
toolType |
String | 'routes' | 工具类型,routes:动画漫游,point:绕点旋转 |
heading |
Number | 90 | 航向角(相机视角),绕Z轴旋转的弧度值。路径漫游时:跟随视角、第一视角、上帝视角下实时生效;绕视点旋转时:这个值是自增的,因此只有初始化时生效,不可实时修改 |
pitch |
Number | 0 | 俯仰角(相机视角),绕Y轴旋转的弧度值。路径漫游时:跟随视角,第一视角实时生效;绕视点旋转时:这个值可实时修改。 |
range |
Number | 0 | 相机距离,相机距离视点的距离,单位米。路径漫游时:跟随视角,上帝视角实时生效 |
distance |
Number | 0 | 绕点旋转时,相机定位点的平移距离(沿着相机视角的相反方向),米。绕视点旋转时,这个值可实时修改。不能为空或者是0。 |
duration |
Number | 8 | 绕点旋转时,动画持续时间 |
moveToStop |
Number | true | 绕点旋转时,移动鼠标,停止旋转。true激活该特性,false,不激活该特性。 |
animationType |
Number | 2 | 0:一般场景,不操作相机;1:跟随;2:锁定第一视角;3:上帝视角 |
isLoop |
Boolean | false | 是否循环 |
showPath |
Boolean | false | 是否显示路径 (默认不显示路径) |
positions |
Array | 漫游路径点 初始化可以不设置 但一定要在开始前设置好 |
|
speed |
Number | 1 | 漫游速度或者绕点旋转速度,默认1m/s(1米/秒)或1度/秒 特别提醒(漫游场景范围很大的时候,这个一定要设置大,比如飞机可能就是真实的几千米每秒 如果不按真实设置,会导致内部时间点插值过密,造成卡顿)。 |
speedupFactor |
Number | 1 | 加速因子(加速倍数) 默认为1 |
exHeight |
Number | 2 | 附加高程 |
showInfo |
Boolean | false | 是否显示提示信息 |
modelUrl |
Object | 模型路径 默认为空不显示 |
|
model |
Object | 动画漫游中的模型对象参数,详见 |
|
complete |
function | 完成回调 完成后的回调函数 |
|
interpolationAlgorithm |
Object | LagrangePolynomialApproximation | 插值算法 默认拉格朗日 还有线性插值 Cesium.LinearApproximation(埃尔米特插值插值)Cesium.HermitePolynomialApproximation |
isProcessCorner |
Boolean | false | 是否需要将较大转弯点处理为圆弧 |
maxAngle |
Number | 150.0 | 设置判断为转弯点的角度的最大值,不超过150的转角会被执行插值,处理为圆弧 |
curveStep |
Number | 0.05 | 转弯处往圆弧曲线上插值点的步长,点个数=1/curveStep |
headingTargetPosition |
Number | 0.0 | 动态可视域目标点绕Z轴旋转,角度制 |
pitchTargetPosition |
Number | 0.0 | 动态可视域目标点绕Y轴旋转,角度制 |
rollTargetPosition |
Number | 0.0 | 动态可视域目标点绕X轴旋转,角度制 |
rangeTargetPosition |
Number | 1.0 | 视点与目标点距离按照倍数增加 |
isAddScanEffect |
Boolean | false | 是否挂载动态扫描特效 |
scanEffect |
Object | 扫描特效实例,可以是动态圆,也可以是雷达扫描 |
|
isGetRealHeight |
Boolean | false | 是否获取路径点的真实高程 |
speedArray |
Array | [this._speed] | 速度不同时,各个路径点的对应速度 |
timeArray |
Array | [] | 路径点与时间相对应 |
accelerationArray |
Array | [0] | 加速度数组 |
callback |
function | 运动过程中的回调函数 |
|
callback.result |
Object | 回调结果:对应的运动动画信息 |
|
callback.result.routePointIndex |
Number | 模型在路径点哪个分段,是当前分段的第一个点的索引 |
|
callback.result.currenPositionStatus |
Number | 当前点状态:0代表点在线上,1代表点在拐点处 |
|
callback.result.position |
Cesium.Cartesian3 | 实时位置,详见Cesium.Cartesian3 |
|
callback.result.startTime |
Cesium.JulianDate | 运动开始时间,详见Cesium.JulianDate |
|
callback.result.currentTime |
Cesium.JulianDate | 当前时间,详见Cesium.JulianDate |
|
callback.result.stopTime |
Cesium.JulianDate | 运动结束时间,详见Cesium.JulianDate |
|
callback.result.remainDistance |
Number | 剩余运动距离 |
|
callback.result.totalDistance |
Number | 运动总距离 |
|
callback.result.speed |
Number | 运动速度 |
|
isSetModelPosture |
Boolean | true | 是否设置模型运动姿态,保持朝向与运动方向一致,默认为true,设置为false时,模型姿态不改变 |
startTime |
Object | Date类型,用于设置漫游开始时间 |
|
startPositionIndex |
Number | 0 | Number类型,默认是0,是开始路径漫游跳转点的上一个路径点的索引,和offestStartPositionDistance一起用于判断漫游的具体跳转点位 |
offsetStartPositionDistance |
Number | 0 | Number类型,默认是0,是距离startPositionIndex索引点的距离,单位是meter |
modelHeading |
Number | 0 | Number类型,默认是0,模型的方位角 |
modelPitch |
Number | 0 | Number类型,默认是0,模型的俯仰角 |
modelRoll |
Number | 0 | Number类型,默认是0,模型的倾斜角 |
firstPersonCameraFocusOffset |
Object | {offsetX: 0,offsetY: 0,offsetZ: 0} | 第一人称视角下,相机焦点的偏移值。向前:offsetX;向左:offsetY;向上:offsetZ |
modelOffset |
Object | {offsetX: 0,offsetY: 0,offsetZ: 0} | 模型相对自身的平移值,单位为米。向前:offsetX;向左:offsetY;向上:offsetZ |
请参考以下示例:
1、路径漫游
2、绕点旋转
3、飞行漫游
4、实时漫游
5、室内漫游
6、模型沿地形漫游
示例
// 参考示例:
http://webclient.smaryun.com/#/modules/cesium/analyse/commonAnalyse/path-roaming
// ES5引入方式
const { AnimationTool } = zondy.cesium
// ES6引入方式
import { AnimationTool } from "@mapgis/webclient-cesium-plugin"
// 1 构造漫游路径数组,单位为笛卡尔3
const pathPositions = [...]
// 2 定义漫游工具对象
animationTool = new AnimationTool(viewer, {
//类型指定为routes
toolType: 'routes',
// 漫游路径(笛卡尔3数组)
positions: pathPositions,
...
})
// 3 开始漫游
animationTool.start()
// 4 暂停漫游
animationTool.pause
// 5 结束漫游
animationTool.stop()
// 参考示例:
http://webclient.smaryun.com/#/modules/cesium/sceneControl/camera/point-rotate
// ES5引入方式
const { AnimationTool } = zondy.cesium
// ES6引入方式
import { AnimationTool } from "@mapgis/webclient-cesium-plugin"
// 1 定义漫游工具对象
animationTool = new AnimationTool(viewer, {
//类型指定为point
toolType: 'point',
//旋转中心点
positions: new Cesium.Cartesian3(0, 0, 0),
...
})
// 2 开始旋转
animationTool.start()
// 3 暂停旋转
animationTool.pause
// 4 结束旋转
animationTool.stop()
// 参考示例:
http://webclient.smaryun.com/#/modules/cesium/analyse/commonAnalyse/fly-roaming
// ES5引入方式
const { AnimationTool } = zondy.cesium
// ES6引入方式
import { AnimationTool } from "@mapgis/webclient-cesium-plugin"
// 1 构造漫游路径数组,单位为笛卡尔3
const pathPositions = [...]
// 2 定义漫游工具对象
animationTool = new AnimationTool(viewer, {
//类型指定为routes
toolType: 'routes',
// 漫游路径(笛卡尔3数组)
positions: pathPositions,
// 设置漫游的视角类型。0:正常,不移动相机;1:跟随;2:锁定第一视角;3:上帝视角
animationType: 2,
// 设置漫游模型
modelUrl: 'http://webclient.smaryun.com:8200/3DData/Model/glb/TravelPlane.glb',
//模型对象参数,详见ModelGraphics对象的文档
model: {
//放大比例
scale: 30,
//固定大小设为0
minimumPixelSize: 0
},
...
})
// 3 开始漫游
animationTool.start()
// 4 暂停漫游
animationTool.pause
// 5 结束漫游
animationTool.stop()
// 参考示例:
http://webclient.smaryun.com/#/modules/cesium/analyse/commonAnalyse/real-time-roaming
// ES5引入方式
const { AnimationTool } = zondy.cesium
// ES6引入方式
import { AnimationTool } from "@mapgis/webclient-cesium-plugin"
// 1 构造漫游路径数组,单位为笛卡尔3
const pathPositions = [...]
// 2 定义漫游工具对象
animationTool = new AnimationTool(viewer, {
//类型指定为routes
toolType: 'routes',
// 漫游路径(笛卡尔3数组)
positions: pathPositions,
// 设置漫游的视角类型。0:正常,不移动相机;1:跟随;2:锁定第一视角;3:上帝视角
animationType: 3,
...
})
// 3 开始漫游
animationTool.start()
// 4 暂停漫游
animationTool.pause
// 5 结束漫游
animationTool.stop()
// 参考示例:
http://webclient.smaryun.com/#/modules/cesium/analyse/commonAnalyse/indoor-roaming
// ES5引入方式
const { AnimationTool } = zondy.cesium
// ES6引入方式
import { AnimationTool } from "@mapgis/webclient-cesium-plugin"
// 1 构造漫游路径数组,单位为笛卡尔3
const pathPositions = [...]
// 2 定义漫游工具对象
animationTool = new AnimationTool(viewer, {
//类型指定为routes
toolType: 'routes',
// 漫游路径(笛卡尔3数组)
positions: pathPositions,
// 设置漫游的视角类型。0:正常,不移动相机;1:跟随;2:锁定第一视角;3:上帝视角
animationType: 1,
...
})
// 3 开始漫游
animationTool.start()
// 4 暂停漫游
animationTool.pause
// 5 结束漫游
animationTool.stop()
// 参考示例:
http://webclient.smaryun.com/#/modules/cesium/analyse/commonAnalyse/model-terrain-roaming
// ES5引入方式
const { AnimationTool } = zondy.cesium
// ES6引入方式
import { AnimationTool } from "@mapgis/webclient-cesium-plugin"
// 1 构造漫游路径数组,单位为笛卡尔3
const pathPositions = [...]
// 2 定义漫游工具对象
animationTool = new AnimationTool(viewer, {
//类型指定为routes
toolType: 'routes',
// 漫游路径(笛卡尔3数组)
positions: pathPositions,
// 设置漫游的视角类型。0:正常,不移动相机;1:跟随;2:锁定第一视角;3:上帝视角
animationType: 0,
// 是否获取路径点的真实高程
isGetRealHeight: true,
// 漫游的模型对象的url,为空表示不显示
modelUrl:'http://webclient.smaryun.com:8200/3DData/Model/glb/CesiumMilkTruck.glb',
//模型对象参数,详见ModelGraphics对象的文档
model: {
//放大比例
scale: 20,
//固定大小设为0
minimumPixelSize: 0,
// 模型贴地显示
heightReference: Cesium.HeightReference.CLAMP_TO_GROUND
},
...
})
// 3 开始漫游
animationTool.start()
// 4 暂停漫游
animationTool.pause
// 5 结束漫游
animationTool.stop()
成员变量
# callback
回调函数,返回一组动画信息
示例
callback: function (result) {
console.log('到达站点' + result.index + ',站点坐标:' + result.position);
console.log('当前点状态' + result.currenPositionStatus);
console.log('实时位置' + result.position);
console.log('运动开始时间' + result.startTime);
console.log('当前时间' + result.currentTime);
console.log('剩余运动距离' + result.remainDistance);
console.log('运动总距离' + result.totalDistance);
console.log('运动速度' + result.speed);
}
# followSwitchMouseEvent
布尔类型,默认为false,切换跟随视角下的鼠标点击事件
- Deprecated:
- 在16.7.2版本中移除, 用户需要自定义鼠标控制逻辑,可在应用层参考
screenSpaceCameraController
鼠标事件设置
- 在16.7.2版本中移除, 用户需要自定义鼠标控制逻辑,可在应用层参考
# isGetPositionNow
是否获取当前点坐标,默认为false,为true时,需配合返回当前点坐标的回调函数一起使用
- Deprecated:
- 在16.7.2版本中移除, 请使用
AnimationTool#callback
替代
- 在16.7.2版本中移除, 请使用
# onPositionTag
是否执行回调函数的功能,默认为false不执行
- Deprecated:
- 在16.7.2版本中移除, 请使用
AnimationTool#callback
替代
- 在16.7.2版本中移除, 请使用