类名 AnimationTool

# 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

动画漫游中的模型对象参数,详见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

运动过程中的回调函数

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()

成员变量

Number

# readonly animationModel

动画模型

Number

# animationType

动画漫游的类型

function

# 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);
 }
Number

# disFactor

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

Deprecated:
Number

# distance

偏移距离 (单位米)

Number

# exHeight

附加高程

Object

# firstPersonCameraFocusOffset

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

Boolean

# followSwitchMouseEvent

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

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

# readonly followViewCameraHPR

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

Number

# heading

航向角 (单位弧度)

Number

# headingTargetPosition

根据Z轴旋转

Boolean

# isAddViewshedAnalysis

是否挂载动态可视域

Boolean

# isGetPositionNow

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

Deprecated:
Boolean

# isLoop

是否循环

Boolean

# isSetModelPosture

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

Boolean

# isShowPath

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

Deprecated:
  • Yes
Number

# modelHeading

模型的方位角

Object

# modelOffset

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

Number

# modelPitch

模型的俯仰角

Number

# modelRoll

模型的倾斜角

Number

# offsetStartPositionDistance

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

Boolean

# onPositionTag

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

Deprecated:
Boolean

# pause

控制动画的暂停

Number

# pitch

俯仰角 (单位弧度)

Number

# pitchTargetPosition

根据Y轴旋转

Array

# positions

坐标点

Number

# range

距离 (单位米)

Number

# rangeTargetPosition

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

Number

# rollTargetPosition

根据X轴旋转

Object

# scanEffect

扫描特效实例

Boolean

# showInfo

是否显示提示信息

Boolean

# showPath

是否显示漫游路径

Number

# speed

漫游速度

Array

# speedArray

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

Number

# speedupFactor

快进(设置倍数)

Number

# startPositionIndex

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

Array

# timeArray

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

Object

# viewshedAnalysis

可视域实例

方法

# start()

开始漫游

# stop()

结束漫游

构造函数
成员变量
方法
事件