# FixedRoute
查阅Cesium API

#### new mars3d.graphic.FixedRoute(options)
graphic/custom/FixedRoute.js 10

固定轨迹路线/历史轨迹路线，是由多个其他类型Graphic组合而成，方便一起控制和管理。
路线坐标是一次性postions参数或属性传入的，有开始和结束的概念。

参数名称 | 类型 | 描述信息
--- | --- | ---
`options` | object | 参数对象，包括以下：
参数名称 | 类型 | 默认值 | 描述信息
--- | --- | --- | ---
`position` | BaseGraphic.TimePosition |  | 可选 时序坐标位置
`attr` | object |  | 可选 矢量数据的 属性信息，可以任意附加属性
`convertStyle` | boolean | `false` | 可选 是否兼容外部标绘功能统一修改样式，进行拆分矢量样式到style中（如options.model.url可以传options.style.model_url）
`label` | LabelEntity.StyleOptions |  | 可选 使用 文本 对象，及其对应的样式
`billboard` | BillboardEntity.StyleOptions |  | 可选 使用 图标 对象，及其对应的样式
`point` | PointPrimitive.StyleOptions |  | 可选 使用 图标 对象，及其对应的样式
`model` | ModelPrimitive.StyleOptions |  | 可选 使用 gltf模型 对象，及其对应的样式
`circle` | CircleEntity.StyleOptions |  | 可选 使用 圆 对象，及其对应的样式
`coneTrack` | ConeTrack.StyleOptions |  | 可选 使用 圆锥体 对象，及其对应的样式
`path` | PathEntity.StyleOptions |  | 可选 使用 path轨迹 对象，及其对应的样式
`polyline` | PolylineEntity.StyleOptions |  | 可选 使用 polyline路线 对象，及其对应的样式 // * @param {number} [options.polyline.maxDistance] 设置保留的轨迹长度值（单位：米），不设置时保留所有的轨迹 // * @param {boolean} [options.polyline.showAll] 在播放时,是否一直显示所有坐标
`wall` | WallEntity.StyleOptions |  | 可选 使用 墙体 对象，及其对应的样式 // * @param {number} [options.wall.maxDistance] 设置保留的轨迹长度值（单位：米），不设置时保留所有的轨迹 // * @param {number} [options.wall.surface] 设置墙底部高度是否贴地
`highlight` | object |  | 可选 鼠标移入或单击(type:'click')后的对应高亮的部分样式，创建Graphic后也可以openHighlight、closeHighlight方法来手动调用
参数名称 | 类型 | 描述信息
--- | --- | ---
`label` | LabelEntity.StyleOptions | 可选 使用 文本 对象，及其对应的样式
`billboard` | BillboardEntity.StyleOptions | 可选 使用 图标 对象，及其对应的样式
`point` | PointPrimitive.StyleOptions | 可选 使用 图标 对象，及其对应的样式
`model` | ModelPrimitive.StyleOptions | 可选 使用 gltf模型 对象，及其对应的样式
`circle` | CircleEntity.StyleOptions | 可选 使用 圆 对象，及其对应的样式
`coneTrack` | ConeTrack.StyleOptions | 可选 使用 圆锥体 对象，及其对应的样式
`path` | PathEntity.StyleOptions | 可选 使用 path轨迹 对象，及其对应的样式
`polyline` | PolylineEntity.StyleOptions | 可选 使用 polyline路线 对象，及其对应的样式
`wall` | WallEntity.StyleOptions | 可选 使用 墙体 对象，及其对应的样式
`orientation` | Cesium.Property | object |  | 可选 自定义实体方向, 默认内部根据轨迹自动的
`fixedFrameTransform` | Cesium.Transforms.LocalFrameToFixedFrame | `Cesium.Transforms.eastNorthUpToFixedFrame` | 可选 参考系
`showStop` | boolean | `true` | 可选 是否在start前或stop后显示矢量对象
`updateClock` | boolean | `true` | 可选 是否自动更新时钟，多个FixedRoute时或外部手动控制时钟时建议关闭
`clockRange` | Cesium.ClockRange |  | 可选 设定全局时钟播放的模式，可以设置到达终点后停止或循环播放
`clockLoop` | boolean |  | 可选 是否循环播放，与 clockRange: Cesium.ClockRange.LOOP_STOP 效果类似，但不改变全局时钟时间
`autoStart` | object |  | 可选 是否加入后就自动启动播放
参数名称 | 类型 | 默认值 | 描述信息
--- | --- | --- | ---
`enabled` | boolean | `true` | 可选 是否启用
`delay` | number | `0` | 可选 延迟多少秒开始播放
`autoStop` | boolean |  | 可选 是否自动停止
`frameRate` | number | `1` | 可选 多少帧获取一次数据。用于控制效率，如果卡顿就把该数值调大一些。
`maxCacheCount` | number | `1000` | 可选 保留的坐标点数量, 当为-1时保留所有
`backwardExtrapolationType` | Cesium.ExtrapolationType | number | `Cesium.ExtrapolationType.HOLD` | 可选 当使用addTimePosition时，在第1个开始时间之前，NONE时不显示，HOLD时显示开始时间对应坐标位置
`forwardExtrapolationType` | Cesium.ExtrapolationType | number | `Cesium.ExtrapolationType.HOLD` | 可选 当使用addTimePosition时，在最后1个结束时间之后，NONE时不显示，HOLD时显示结束时间对应坐标位置
`numberOfDerivatives` | number | `0` | 可选 当使用addTimePosition设置为动画轨迹位置时，每个位置的导数的数量;即速度、加速度等。
`autoMiddleTimePosition` | boolean |  | 可选 当使用addTimePosition设置为动画轨迹位置时，如果中间缺少数据时是否自动添加中间点。
`clampToTileset` | boolean |  | 可选 是否进行贴模型。
`frameRateHeight` | number | `30` | 可选 clampToTileset：true时，多少帧计算一次贴模型高度
`camera` | object |  | 可选 视角模式设置，包括：
参数名称 | 类型 | 默认值 | 描述信息
--- | --- | --- | ---
`type` | string |  | 可选 视角模式类型，包括：'':无、'gs':跟随视角、'dy':第一视角、'sd':上帝视角
`radius` | number |  | 可选 'gs'跟随视角时的 初始俯仰距离值（单位：米）
`heading` | number |  | 可选 'gs'跟随视角时的 初始方向角度值，绕垂直于地心的轴旋转角度, 0至360
`pitch` | number |  | 可选 'gs'跟随视角时的 初始俯仰角度值，绕纬度线旋转角度, -90至90
`followedX` | number | `50` | 可选 'dy'锁定第一视角时，距离运动点的距离（后方）
`followedZ` | number | `10` | 可选 'dy'锁定第一视角或'sd'上帝视角时，距离运动点的高度（上方）
`offsetX` | number | `0` | 可选 'dy'锁定第一视角时，锁定点的本身的X轴方向（前后）偏移值
`offsetY` | number | `0` | 可选 'dy'锁定第一视角时，锁定点的本身的Y轴方向（横向）偏移值
`offsetZ` | number | `0` | 可选 'dy'锁定第一视角时，锁定点的本身的Z轴方向（高度）偏移值
`popup` | string | Array | function |  | 可选 绑定的popup弹窗值，也可以bindPopup方法绑定
`popupOptions` | Popup.StyleOptions |  | 可选 popup弹窗时的配置参数，也支持如pointerEvents等`Popup`构造参数
`tooltip` | string | Array | function |  | 可选 绑定的tooltip弹窗值，也可以bindTooltip方法绑
`tooltipOptions` | Tooltip.StyleOptions |  | 可选 tooltip弹窗时的配置参数，也支持如pointerEvents等`Tooltip`构造参数
`contextmenuItems` | object |  | 可选 当矢量数据支持右键菜单时，也可以bindContextMenu方法绑定
`id` | string | number | `createGuid()` | 可选 矢量数据id标识
`name` | string |  | 可选 矢量数据名称
`show` | boolean | `true` | 可选 矢量数据是否显示
`eventParent` | BaseClass | boolean |  | 可选 指定的事件冒泡对象，默认为所加入的图层对象，false时不冒泡事件
`allowDrillPick` | boolean | function |  | 可选 是否允许鼠标穿透拾取
`flyTo` | boolean |  | 可选 加载完成数据后是否自动飞行定位到数据所在的区域。
`flyToOptions` | object |  | 可选 加载完成数据后是否自动飞行定位到数据所在的区域的对应 `BaseGraphic#flyTo`方法参数。

##### 参考:

- `支持的事件类型`

### 继承自

- Route

### 属性值

#### 只读 alt : number
graphic/custom/Route.js 324

当前海拔高度值

继承自:
  - Route#alt

#### billboard : BillboardPrimitive
graphic/custom/Route.js 180

图标 子对象

继承自:
  - Route#billboard

#### circle : CircleEntity
graphic/custom/Route.js 235

圆 子对象

继承自:
  - Route#circle

#### coneTrack : ConeTrack
graphic/custom/Route.js 248

圆锥体 子对象

继承自:
  - Route#coneTrack

#### 只读 currIndex : number
graphic/custom/Route.js 385

当前飞行过的positions轨迹点数组的index顺序

继承自:
  - Route#currIndex

#### 只读 groundPosition : Cesium.Cartesian3
graphic/custom/Route.js 315

求当前位置射线与地球相交点

继承自:
  - Route#groundPosition

#### 只读 info : object
graphic/custom/FixedRoute.js 128

当前实时信息

#### isPause : boolean
graphic/custom/Route.js 407

是否暂停状态 【针对全局时钟的，即 map.clock.shouldAnimate】

继承自:
  - Route#isPause

#### 只读 isStart : boolean
graphic/custom/FixedRoute.js 119

是否已启动

#### label : LabelPrimitive|*
graphic/custom/Route.js 167

文本 子对象

继承自:
  - Route#label

#### model : ModelPrimitive
graphic/custom/Route.js 206

模型 子对象

继承自:
  - Route#model

#### 只读 modelMatrix : Cesium.Matrix4
graphic/custom/Route.js 302

将图元(所有几何实例)从模型转换为世界坐标的4x4变换矩阵。
提示：父类属性，非所有子类都具备

继承自:
  - Route#modelMatrix

#### multiplier : number
graphic/custom/Route.js 393

倍速，构造完成的对象，可以调用此属性调整速度。

继承自:
  - Route#multiplier

#### objectsToExclude : Array.<object>|undefined
graphic/custom/Route.js 426

贴模型分析时，排除的不进行贴模型计算的模型对象，默认是当前本身，可以是： primitives, entities 等

继承自:
  - Route#objectsToExclude

#### path : PathEntity
graphic/custom/Route.js 261

path路径 子对象

继承自:
  - Route#path

#### point : PointPrimitive|*
graphic/custom/Route.js 193

像素点 子对象

继承自:
  - Route#point

#### polyline : PolylineEntity
graphic/custom/Route.js 274

路线 子对象

继承自:
  - Route#polyline

#### 只读 readyPromise : Promise.<(ModelEntity|object)>
graphic/custom/Route.js 227

获取model模型子对象完成解析加载完成的Promise承诺

继承自:
  - Route#readyPromise

##### 使用示例:

    route.readyPromise.then(function(graphic) {
        console.log("load完成", graphic)
      })

#### 只读 startTime : Cesium.JulianDate
graphic/custom/Route.js 357

开始时间

继承自:
  - Route#startTime

#### 只读 stopTime : Cesium.JulianDate
graphic/custom/Route.js 371

结束时间

继承自:
  - Route#stopTime

#### style : object
graphic/custom/Route.js 454

样式信息 【仅用于标绘，兼容其他graphic统一处理逻辑】

继承自:
  - Route#style

#### timePoints : Array.<LngLatPoint>
graphic/custom/FixedRoute.js 110

时序位置坐标数组

#### wall : WallEntity
graphic/custom/Route.js 287

墙体 子对象

继承自:
  - Route#wall

### 方法

#### autoSurfaceHeight(options) → Promise.<object>
graphic/custom/FixedRoute.js 464

计算贴地线

参数名称 | 类型 | 描述信息
--- | --- | ---
`options` | object | 可选 控制参数
参数名称 | 类型 | 默认值 | 描述信息
--- | --- | --- | ---
`splitNum` | number | `100` | 可选 插值数，等比分割的个数(概略值，有经纬网网格来插值)
`minDistance` | number |  | 可选 插值最小间隔(单位：米)，提示：优先级高于splitNum，用于计算splitNum（非严格按这个值分割）
`exact` | boolean | `false` | 可选 是否进行精确计算， 传false时是否快速概略计算方式，该方式计算精度较低，但计算速度快，仅能计算在当前视域内坐标的高度
`has3dtiles` | boolean | `auto` | 可选 是否在3dtiles模型上分析（模型分析较慢，按需开启）,默认内部根据点的位置自动判断（但可能不准）
`objectsToExclude` | Array.<object> |  | 可选 贴模型分析时，排除的不进行贴模型计算的模型对象，可以是： primitives, entities, 或 3D Tiles features
`offset` | number | `0` | 可选 可以按需增加偏移高度（单位：米），便于可视

##### 返回值:

异步计算完成的Promise

#### computeModelMatrix(offest) → Cesium.Matrix4
graphic/custom/Route.js 1213

获取当前矩阵

参数名称 | 类型 | 描述信息
--- | --- | ---
`offest` | object | 偏移值
参数名称 | 类型 | 描述信息
--- | --- | ---
`x` | number | X轴方向偏移值,单位：米
`y` | number | Y轴方向偏移值,单位：米
`z` | number | Z轴方向偏移值,单位：米

##### 返回值:

当前矩阵

继承自:
  - Route#computeModelMatrix

#### eachChildGraphic(method, context) → Route
graphic/custom/Route.js 901

遍历所有矢量数据并将其作为参数传递给回调函数

参数名称 | 类型 | 描述信息
--- | --- | ---
`method` | function | 回调方法
`context` | object | 可选 侦听器的上下文(this关键字将指向的对象)。

##### 返回值:

当前对象本身,可以链式调用

继承自:
  - Route#eachChildGraphic

#### flyToPoint(options) → void
graphic/custom/Route.js 1480

定位至当前时间所在的位置 (非相机位置)

参数名称 | 类型 | 默认值 | 描述信息
--- | --- | --- | ---
`options` | object | `{}` | 可选 具有以下属性的对象:
参数名称 | 类型 | 描述信息
--- | --- | ---
`radius` | number | 可选 相机距离目标点的距离（单位：米）
`heading` | number | 可选 方向角度值，绕垂直于地心的轴旋转角度, 0至360
`pitch` | number | 可选 俯仰角度值，绕纬度线旋转角度, 0至360
`roll` | number | 可选 翻滚角度值，绕经度线旋转角度, 0至360
`duration` | number | 可选 飞行持续时间（秒）。如果省略，内部会根据飞行距离计算出理想的飞行时间。
`endTransform` | Cesium.Matrix4 | 可选 表示飞行完成后摄像机将位于的参考帧的变换矩阵。
`maximumHeight` | number | 可选 飞行高峰时的最大高度。
`pitchAdjustHeight` | number | 可选 如果相机的飞行角度高于该值，请在飞行过程中调整俯仰角度以向下看，并将地球保持在视口中。
`flyOverLongitude` | number | 可选 地球上2点之间总是有两种方式。此选项会迫使相机选择战斗方向以在该经度上飞行。
`flyOverLongitudeWeight` | number | 可选 仅在通过flyOverLongitude指定的lon上空飞行，只要该方式的时间不超过flyOverLongitudeWeight的短途时间。
`easingFunction` | Cesium.EasingFunction.Callback | 可选 控制在飞行过程中如何插值时间。

##### 返回值:

无

继承自:
  - Route#flyToPoint

#### getCoord(options) → Object|Array.<Array>
graphic/custom/Route.js 1453

获取位置坐标 (其中坐标均为经纬度形式),用于导出JSON等方法

参数名称 | 类型 | 描述信息
--- | --- | ---
`options` | object | 可选 参数
参数名称 | 类型 | 描述信息
--- | --- | ---
`noAlt` | boolean | 可选 true时不导出高度值

##### 返回值:

位置坐标(经纬度数组形式)

继承自:
  - Route#getCoord

#### getRectangle(options) → Cesium.Rectangle|object
graphic/custom/Route.js 1430

获取数据的矩形边界

参数名称 | 类型 | 描述信息
--- | --- | ---
`options` | boolean | 可选 控制参数
参数名称 | 类型 | 默认值 | 描述信息
--- | --- | --- | ---
`isFormat` | boolean | `false` | 可选 是否格式化，格式化时示例： { xmin: 73.16895, xmax: 134.86816, ymin: 12.2023, ymax: 54.11485 }

##### 返回值:

isFormat：true时，返回格式化对象，isFormat：false时返回Cesium.Rectangle对象

继承自:
  - Route#getRectangle

#### getTerrainHeight(options) → Promise.<object>
graphic/custom/FixedRoute.js 564

获取剖面数据

参数名称 | 类型 | 描述信息
--- | --- | ---
`options` | object | 可选 控制参数
参数名称 | 类型 | 默认值 | 描述信息
--- | --- | --- | ---
`splitNum` | number | `100` | 可选 插值数，等比分割的个数(概略值，有经纬网网格来插值)
`minDistance` | number |  | 可选 插值最小间隔(单位：米)，提示：优先级高于splitNum，用于计算splitNum（非严格按这个值分割）
`has3dtiles` | boolean | `auto` | 可选 是否在3dtiles模型上分析（模型分析较慢，按需开启）,默认内部根据点的位置自动判断（但可能不准）
`objectsToExclude` | Array.<object> |  | 可选 贴模型分析时，排除的不进行贴模型计算的模型对象，可以是： primitives, entities, 或 3D Tiles features
`offset` | number | `0` | 可选 可以按需增加偏移高度（单位：米），便于可视

##### 返回值:

异步计算完成的Promise

#### pause() → void
graphic/custom/Route.js 1551

暂停 【针对全局时钟的，即 map.clock.shouldAnimate】

##### 返回值:

无

继承自:
  - Route#pause

#### proceed() → void
graphic/custom/Route.js 1564

继续 【针对全局时钟的，即 map.clock.shouldAnimate】

##### 返回值:

无

继承自:
  - Route#proceed

#### setCameraOptions(cameraOptions) → void
graphic/custom/Route.js 1520

更新视角模式,传入空值代表取消。

参数名称 | 类型 | 描述信息
--- | --- | ---
`cameraOptions` | object | 可选 参数，包括：
参数名称 | 类型 | 默认值 | 描述信息
--- | --- | --- | ---
`type` | string |  | 可选 视角模式类型，包括：'':无、'gs':跟随视角、'dy':第一视角、'sd':上帝视角
`radius` | number |  | 可选 'gs'跟随视角时的 离目标的距离值（单位：米）
`heading` | number |  | 可选 'gs'跟随视角时的 初始方向角度值，绕垂直于地心的轴旋转角度, 0至360
`pitch` | number |  | 可选 'gs'跟随视角时的 初始俯仰角度值，绕纬度线旋转角度, 0至360 *
`followedX` | number | `50` | 可选 'dy'锁定第一视角时，距离运动点的距离（后方）
`followedZ` | number | `10` | 可选 'dy'锁定第一视角或'sd'上帝视角时，距离运动点的高度（上方）

##### 返回值:

无

继承自:
  - Route#setCameraOptions

#### start() → void
graphic/custom/FixedRoute.js 183

开始飞行漫游

##### 返回值:

无

#### stop() → void
graphic/custom/FixedRoute.js 253

停止飞行漫游

##### 返回值:

无