Class: AnimationTool

AnimationTool

new AnimationTool(viewer, options)

engineExtensions/tools/AnimationTool.js, line 2

请参考以下示例:
1、路径漫游
2、绕点旋转
3、飞行漫游
4、实时漫游
5、室内漫游
6、模型沿地形漫游

场景漫游工具

Name Type Default Description
viewer Cesium.Viewer null 可选

场景视图,详见Cesium.Viewer

options Object {} 可选

额外初始化参数

Name Type Default Description
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 可选

动画漫游中的模型对象参数,详见ModelGraphics

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 可选

运动过程中的回调函数

Name Type Description
result Object 可选

回调结果:对应的运动动画信息

Name Type Description
routePointIndex Number 可选

模型在路径点哪个分段,是当前分段的第一个点的索引

currenPositionStatus Number 可选

当前点状态:0代表点在线上,1代表点在拐点处

position Cesium.Cartesian3 可选

实时位置,详见Cesium.Cartesian3

startTime Cesium.JulianDate 可选

运动开始时间,详见Cesium.JulianDate

currentTime Cesium.JulianDate 可选

当前时间,详见Cesium.JulianDate

stopTime Cesium.JulianDate 可选

运动结束时间,详见Cesium.JulianDate

remainDistance Number 可选

剩余运动距离

totalDistance Number 可选

运动总距离

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

Examples

路径漫游

// 参考示例:
http://10.10.130.72:8086/#/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://10.10.130.72:8086/#/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://10.10.130.72:8086/#/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://10.10.130.72:8200/3DData/Model/glb/TravelPlane.glb',
  //模型对象参数,详见ModelGraphics对象的文档
  model: {
    //放大比例
    scale: 30,
    //固定大小设为0
    minimumPixelSize: 0
  },
  ...
})

// 3 开始漫游
animationTool.start()

// 4 暂停漫游
animationTool.pause

// 5 结束漫游
animationTool.stop()

实时漫游

// 参考示例:
http://10.10.130.72:8086/#/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://10.10.130.72:8086/#/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://10.10.130.72:8086/#/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://10.10.130.72: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()

Members

animationModelNumber

动画模型

animationTypeNumber

动画漫游的类型

callbackfunction

回调函数,返回一组动画信息

Example
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);
 }

disFactorNumber

用于判断当前点是否到达路径点

Deprecated

distanceNumber

偏移距离 (单位米)

exHeightNumber

附加高程

firstPersonCameraFocusOffsetObject

第一人称视角下,相机焦点的偏移值。向前:offsetX;向左:offsetX;向上:offsetZ

followSwitchMouseEventBoolean

布尔类型,默认为false,切换跟随视角下的鼠标点击事件

Deprecated
  • 在16.7.2版本中移除, 用户需要自定义鼠标控制逻辑,可在应用层参考screenSpaceCameraController鼠标事件设置

    followViewCameraHPRObject

    跟随视角下,相机的初始heading,pitch,range

    headingNumber

    航向角 (单位弧度)

    headingTargetPositionNumber

    根据Z轴旋转

    isAddViewshedAnalysisBoolean

    是否挂载动态可视域

    isGetPositionNowBoolean

    是否获取当前点坐标,默认为false,为true时,需配合返回当前点坐标的回调函数一起使用

    Deprecated

    isLoopBoolean

    是否循环

    isSetModelPostureBoolean

    是否设置模型运动姿态,保持朝向与运动方向一致

    isShowPathBoolean

    是否显示漫游路径,计划废弃,请使用 AnimationTool#showPath 来控制漫游路径的显隐

    Deprecated
    • Yes

    modelHeadingNumber

    模型的方位角

    modelOffsetObject

    模型相对自身的平移值,单位为米。向前:offsetX;向左:offsetY;向上:offsetZ

    modelPitchNumber

    模型的俯仰角

    modelRollNumber

    模型的倾斜角

    offsetStartPositionDistanceNumber

    距离startPositionIndex索引点在当前分段线上的距离,单位是meter

    onPositionTagBoolean

    是否执行回调函数的功能,默认为false不执行

    Deprecated

    pauseBoolean

    控制动画的暂停

    pitchNumber

    俯仰角 (单位弧度)

    pitchTargetPositionNumber

    根据Y轴旋转

    positionsArray

    坐标点

    rangeNumber

    距离 (单位米)

    rangeTargetPositionNumber

    可视域视点到目标点视距增加倍数

    rollTargetPositionNumber

    根据X轴旋转

    scanEffectObject

    扫描特效实例

    showInfoBoolean

    是否显示提示信息

    showPathBoolean

    是否显示漫游路径

    speedNumber

    漫游速度

    speedArrayArray

    用于变速漫游中,设定各个点的速度

    speedupFactorNumber

    快进(设置倍数)

    startPositionIndexNumber

    用于记录开始路径漫游跳转点的上一个路径点的索引

    timeArrayArray

    用于变速漫游中,设定各个点通过的时间数组,时间使用Date()对象

    viewshedAnalysisObject

    可视域实例

    Methods

    start()

    engineExtensions/tools/AnimationTool.js, line 1824

    开始漫游

    stop()

    engineExtensions/tools/AnimationTool.js, line 2428

    结束漫游