import { Cartesian3, JulianDate } from '@cesium/engine'; import { default as Position } from '../core/Position.ts'; /** * 飞机 * 轨迹跟踪与回放 */ declare class RoutingTrackHelper { static currentTime: JulianDate | undefined; private static start; private static stop; private static isBreakForce; private static isFinish; static currentSpeed: number; private static handler; private static handler2; private static doStopCallback; private static stopCallbackHandler; private static stopPosition; private static breakPosition; private static breakTime; private static breakNewHeight; private static sceneRenderCallback; private static defaultVelocityOrientation; private static rollRadian; private static enableRollBack; private static deltaRadians; private static maxAscendbRadians; private static maxDescendRadians; private static _detRadians; private static _detRadians2; private static _detRadians3; private static _maxAscRadians; private static _maxDesRadians; static init(psceneRenderCallback?: Function): void; /** * 设置时间轴播放结束后的回调函数 * @param stopCallback */ static setStopHandler(stopCallback?: (...args: any[]) => void): void; /** * 播放停止点后的回调函数 * @param args */ private static innerStopCallback; /** * 获取当前飞行点 * 绘制中获取 飞行当前点 */ static getCurrentPostion(): Position; /** * 滑行 * 加速或减速 * @param startPosition * @param runwayDistance * @param runSpeed * @param heading * @param isUp */ private static runFlight; /** * 起飞前滑行 * @param startPosition 起飞开始点,GPS点 * @param runwayDistance 跑道距离,单位米,标准跑道400米,默认350 * @param takeoffSpeed 目标,起飞速度 m/s * @param heading 起飞航向角 弧度制 */ static takeoffFlight(startPosition: Position, runwayDistance?: number, takeoffSpeed?: number, heading?: number): void; /** * 滑行 * 加速或减速 * @param startPosition * @param runwayDistance * @param runSpeed * @param heading * @param isUp */ private static runFlightDirection; /** * 沿着某一方向,滑行起飞 * @param startPosition * @param direction * @param runwayDistance * @param takeoffSpeed */ static takeoffFlightByDirection(startPosition: Position, direction: Cartesian3, runwayDistance?: number, takeoffSpeed?: number): void; /** * 爬升高度 * @param angel 爬升角度,弧度 * @param detHeight 爬升高度,米 * @param takeoffSpeed 爬升速度m/s,默认为100m/s */ static climbHeight(angel: number, detHeight?: number, takeoffSpeed?: number): void; /** * 下降高度 * @param angel 下降角度,弧度,负值 * @param detHeight 下降高度,米 * @param landSpeed 下降速度,m/s */ static landdownHeight(angel: number, detHeight?: number, landSpeed?: number): void; /** * 降落滑行 * @param startPosition 入场点, * @param runwayDistance 跑道距离,米 * @param runSpeed 滑行速度,m/s * @param heading 起飞航向角 弧度制 */ static landFlightRun(startPosition: Position, runwayDistance?: number, runSpeed?: number, heading?: number): void; /** * 沿着某一方向,降落滑行 * @param startPosition * @param direction * @param runwayDistance * @param runSpeed */ static landFlightRunByDirection(startPosition: Position, direction: Cartesian3, runwayDistance?: number, runSpeed?: number): void; /** * 通过速度,来生成两点飞行动画 * @param positionStart 开始的点 Position * @param positionEnd 下一个点 Position * @param speed 飞行速度(米/s) * @param numberOfSamples 插值点数 * @param powNum 插值平滑度,默认为1,2为加速,0.5为减速 */ static updatePathSectionBySpeed(positionStart: Position, positionEnd: Position, speed: number, numberOfSamples?: number, powNum?: number): void; /** * 通过速度,来生成两点飞行动画——webworker * @param positionStart 开始的点 Position * @param positionEnd 下一个点 Position * @param speed 飞行速度(米/s) * @param numberOfSamples 插值点数 * @param powNum 插值平滑度,默认为1,2为加速,0.5为减速 */ static updatePathSectionBySpeedWorker(positionStart: Position, positionEnd: Position, speed: number, numberOfSamples?: number, powNum?: number): Promise; /** * 通过时间,来生成两点飞行动画_webworker * @param positionStart * @param positionEnd * @param totalSeconds * @param numberOfSamples * @param powNum */ static updatePathSectionByTimeWorker(positionStart: Position, positionEnd: Position, totalSeconds?: number, numberOfSamples?: number, powNum?: number, pstartTime?: string): Promise; /** * * 通过时间,来生成两点飞行动画 * @param positionStart 开始的点 Position * @param positionEnd 下一个点 Position * @param totalSeconds 总飞行时间 (秒 s) * @param numberOfSamples 插值点数 * @param powNum 插值平滑度,默认为1,2为加速,0.5为减速 */ static updatePathSectionByTime(positionStart: Position, positionEnd: Position, totalSeconds?: number, numberOfSamples?: number, powNum?: number): void; /** * 设置动画点 * @param positionCartesianList 世界坐标点列表 * @param totalSeconds 总共时间 */ static setSampledCartesians(positionCartesianList: Array, totalSeconds: number): void; /** * 赋值所有路径(插值后),支持按时间飞行 或按速度飞行 * @param positionList 所有位置点(已经插值后的) * @param totalTimeSeconds 总时间 * @param speed 速度(米/秒) * @param distance 距离 (米) */ static updatePathPositions(positionList: Array, totalTimeSeconds?: number, speed?: number, distance?: number): void; /** * 内部——飞行路线 * @param positionList 所有点 * @param totalSeconds 总时间(秒) */ static setSampledPositions(positionList: Array, totalSeconds: number): void; /** * 改变高度,重新计算播放点 * @param newHeight */ static changeFlyHeight(newHeight: number): void; /** * 监听场景渲染事件 * @param callback */ private static addSceneEvent; private static renderCallback; /** * 更新 中断后的剩余点 * @param leftPositions 中断后的剩余点 * @param breakStarTime 中断时间 * @param newHeight 新高度 */ private static setSampleBreakPositions; /** * 设置漫游事件系统 * @param {*} start JulianDate * @param {*} stop JulianDate * @param {*} multiplier * @memberof Roaming */ static setClockTime(start: JulianDate, stop: JulianDate, multiplier?: number): void; /** * 设置漫游路径是否可见 * @param {boolean} visible * @memberof Roaming */ static setPathVisibility(visible: any): void; /** * 设置漫游模型是否可见 * @param {boolean} visible * @memberof Roaming */ static setModelVisibility(visible: any): void; /** * 开关动画 * @param state */ static toggoleAnimate(state: boolean): void; /** * 倍速播放 * @param multiplier 当前倍速,默认为1 */ static changeSpeedMultiplier(multiplier: number): void; /** * 改变飞行的速度 * @param newSpeed 当前速度 */ static changeSpeed(newSpeed: number): void; /** * 移除飞行动画 */ static removeRoaming(): void; /** * 垂直降落 * @param elevation 当前海拔高度 * @param speed 降落速度 * @param planeHeight 飞机高度默认为30 */ static straightDownAnimation(elevation: number, speed: number, planeHeight?: number): void; /** * 滑翔降落 * @param tarPosition 目标点 * @param elevation 当前海拔高度 * @param speed 降落速度 * @param planeHeight 飞机高度默认为30 */ static descentAnimation(tarPosition: Position, elevation: number, speed: number, planeHeight?: number): void; /** * 根据起尾点设置动画 * @param startPosition 起点 * @param endPosition 尾点 * @param totalSeconds 总时间 */ private static setSamplePositions; /** * 更新 中断后的剩余点 * @param updatePosition 中断点位 */ static setSampleUpdatePositions(updatePosition: Position): void; /** * 设置roll翻转角度 * @param value 翻转角度,弧度 */ static setRoll(value: number): void; /** * 获取翻转角 * @returns */ static getRoll(): number; /** * 是否开启,翻转角自动回正 * @param enable */ static setEnableRollBack(enable?: boolean): void; /** * 自动回正方向 */ private static autoRollBack; private static getCustomOrientation; /** * 修改角度变化量 * @param detNum 弧度值或经纬度 * @param isDegree 默认为弧度 */ static setDeltaRadians(detNum?: number, isDegree?: boolean): void; /** * 获得当前角度变化量 * @returns */ static getDeltaRadians(): number; /** * 修改最大爬升角度 * @param detNum 爬升角度值-正值 * @param isDegree 是否是弧度 */ static setMaxAscendRadians(detNum?: number, isDegree?: boolean): void; /** * 获得当前最大爬升角度 * @returns */ static getMaxAscendRadians(): number; /** * 修改最大下降角——负值 * @param detNum * @param isDegree */ static setMaxDescendRadians(detNum?: number, isDegree?: boolean): void; /** * 获得最大下降角——负值 * @returns */ static getMaxDescendRadians(): number; private static _currentHeading; /** * 设置当前航向角度 * @param heading 弧度值,默认为0 */ static setHeading(heading?: number): void; /** * 获得当前航向角 * @returns */ static getHeading(): number; /** * 默认播放停止后的回调函数——继续自动飞行 * @param args */ static doDefaultStopCallback(...args: any[]): void; } export default RoutingTrackHelper;