# Satellite
查阅Cesium API

#### new mars3d.graphic.Satellite(options)
plugins/mars3d-space/graphic/Satellite.js 23

卫星综合体 对象类【统一管理卫星模型、轨道、视椎体】, 【需要引入 mars3d-space 插件库】

参数名称 | 类型 | 描述信息
--- | --- | ---
`options` | object | 参数对象，包括以下：
参数名称 | 类型 | 默认值 | 描述信息
--- | --- | --- | ---
`tle1` | string |  | 可选 卫星两行轨道数（TLE） 的tle1, 示例：'1 39150U 13018A 18309.20646405 .00000034 00000-0 12253-4 0 9993'
`tle2` | string |  | 可选 卫星两行轨道数（TLE） 的tle2, 示例：'2 39150 97.9189 29.2064 0018076 220.9170 139.0692 14.76532215297913'
`period` | number |  | 可选 卫星运行周期（单位：分钟）, 未传值时自动在tle2中解析
`pointsNum` | number | `60` | 可选 卫星轨道计算的点数量，值越大轨道越平滑度但占用资源越多(可能卡)
`referenceFrame` | Cesium.ReferenceFrame | `Cesium.ReferenceFrame.INERTIAL` | 可选 使用地固系（ECEF坐标），还是地惯系（ECI惯性坐标）
`numberOfDerivatives` | number | `0` | 可选 每个位置的导数的数量;即速度、加速度等。
`getCustomPosition` | function |  | 可选 当需要在外部自定义计算对应时刻的坐标时，不返回值时使用内部tle计算。示例:function getCustomPosition(time){ return position }
`position` | Cesium.SampledPositionProperty | BaseGraphic.TimePosition | Cesium.Cartesian3 |  | 可选 当没有tle时，自定义传入动态坐标位置（含时序的点集合）
`orientation` | Cesium.Property |  | 可选 当没有tle时，自定义传入实体方向
`attr` | object |  | 可选 矢量数据的 属性信息，可以任意附加属性。
`model` | ModelEntity.StyleOptions |  | 可选 设置是否显示 gltf卫星模型 和对应的样式
`label` | LabelEntity.StyleOptions |  | 可选 设置是否显示 文本 和对应的样式
`billboard` | BillboardEntity.StyleOptions |  | 可选 设置是否显示 图标点 和对应的样式
`point` | PointEntity.StyleOptions |  | 可选 设置是否显示 像素点 和对应的样式
`cone` | SatelliteSensor.StyleOptions | object |  | 可选 设置是否显示 卫星视椎体 和对应的样式
`path` | PolylineEntity.StyleOptions |  | 可选 设置是否显示 卫星轨迹路线 和对应的样式，属性还包含： // * @param {boolean} [options.path.closure=false] 是否闭合轨道圆
`highlight` | object |  | 可选 鼠标移入或单击(type:'click')后的对应高亮的部分样式，提示：原有style的配置项需要与highlightStyle配置有一一对应关系，否则无法清除 // * @param {string} [options.highlight.type] 事件方式，鼠标移入高亮 或 单击高亮(type:'click') // * @param {boolean} [options.highlight.enabled=true] 是否启用
参数名称 | 类型 | 描述信息
--- | --- | ---
`model` | ModelEntity.StyleOptions | 可选 设置是否显示 gltf卫星模型 和对应的样式
`label` | LabelEntity.StyleOptions | 可选 设置是否显示 文本 和对应的样式
`billboard` | BillboardEntity.StyleOptions | 可选 设置是否显示 图标点 和对应的样式
`point` | PointEntity.StyleOptions | 可选 设置是否显示 像素点 和对应的样式
`cone` | SatelliteSensor.StyleOptions | object | 可选 设置是否显示 卫星视椎体 和对应的样式
`path` | PolylineEntity.StyleOptions | 可选 设置是否显示 卫星轨迹路线 和对应的样式
`interpolation` | boolean | `true` | 可选 是否使用插值算法
`interpolationAlgorithm` | number | `Cesium.LagrangePolynomialApproximation` | 可选 当interpolation为true时，使用的插值算法，如：Cesium.HermitePolynomialApproximation、Cesium.LagrangePolynomialApproximation、Cesium.LinearApproximation
`interpolationDegree` | Cesium.InterpolationAlgorithm | number | `5` | 可选 当interpolation为true时，使用的插值程度。
`frameRate` | number | `1` | 可选 多少帧获取一次数据。用于控制效率，如果卡顿就把该数值调大一些。
`id` | string | number | `createGuid()` | 可选 矢量数据id标识
`name` | string |  | 可选 矢量数据名称
`show` | boolean | `true` | 可选 矢量数据是否显示

##### 参考:

- TLE解释

- `支持的事件类型`

### 继承自

- Route

### 属性值

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

当前海拔高度值

继承自:
  - Route#alt

#### angle1 : number
plugins/mars3d-space/graphic/Satellite.js 143

圆锥的角度或者四棱锥的第一个角度，半场角度，取值范围 0.1-89.9

#### angle2 : number
plugins/mars3d-space/graphic/Satellite.js 158

四棱锥的第二个角度，半场角度，取值范围 0.1-89.9

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

图标 子对象

继承自:
  - Route#billboard

#### 只读 center : Cesium.Cartesian3
graphic/primitive/BasePointPrimitive.js 201

中心点坐标 （笛卡尔坐标）

继承自:
  - BasePointPrimitive#center

#### 只读 centerPoint : LngLatPoint
graphic/primitive/BasePointPrimitive.js 210

中心点坐标

继承自:
  - BasePointPrimitive#centerPoint

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

圆 子对象

继承自:
  - Route#circle

#### cone : SatelliteSensor|Array.<SatelliteSensor>|*
plugins/mars3d-space/graphic/Satellite.js 128

卫星视椎体（圆锥或四凌锥） 子对象

#### coneShow : boolean
plugins/mars3d-space/graphic/Satellite.js 173

是否显示视椎体

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

圆锥体 子对象

继承自:
  - Route#coneTrack

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

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

继承自:
  - Route#currIndex

#### debugAxis : boolean
graphic/primitive/BasePointPrimitive.js 350

是否显示3个方向轴，用于对比测试

继承自:
  - BasePointPrimitive#debugAxis

#### debugAxisLength : number
graphic/primitive/BasePointPrimitive.js 387

显示3个方向轴时的对应轴长度，用于对比测试

继承自:
  - BasePointPrimitive#debugAxisLength

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

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

继承自:
  - Route#groundPosition

#### 只读 hasAjaxPostion : boolean
graphic/primitive/BasePointPrimitive.js 621

是否 ajax后端动态坐标

继承自:
  - BasePointPrimitive#hasAjaxPostion

#### 只读 hasTimePostion : boolean
graphic/primitive/BasePointPrimitive.js 630

是否 time时序动态坐标

继承自:
  - BasePointPrimitive#hasTimePostion

#### 只读 hasTlePostion : Tle
plugins/mars3d-space/graphic/Satellite.js 111

是否使用TLE算法计算卫星位置

#### heading : number
graphic/primitive/BasePointPrimitive.js 259

四周方向角，0至360度角度值
提示：父类属性，非所有子类都具备

继承自:
  - BasePointPrimitive#heading

#### height : number
graphic/primitive/BasePointPrimitive.js 218

坐标对应的高度值（单位：米）

继承自:
  - BasePointPrimitive#height

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

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

继承自:
  - Route#isPause

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

文本 子对象

继承自:
  - Route#label

#### lookAt : Cesium.Cartesian3|Cesium.PositionProperty
plugins/mars3d-space/graphic/Satellite.js 186

卫星凝视的目标（卫星方向一直朝向这个目标所在位置）

#### 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

#### 只读 orientation : Cesium.Quaternion
graphic/primitive/BasePointPrimitive.js 232

三维空间中的旋转 【仅部分对象支持】

继承自:
  - BasePointPrimitive#orientation

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

path路径 子对象

继承自:
  - Route#path

#### pitch : number
graphic/primitive/BasePointPrimitive.js 276

俯仰角，上下摇摆的角度，0至360度角度值
提示：父类属性，非所有子类都具备

继承自:
  - BasePointPrimitive#pitch

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

像素点 子对象

继承自:
  - Route#point

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

路线 子对象

继承自:
  - Route#polyline

#### position : Cesium.Cartesian3|LngLatPoint|BaseGraphic.AjaxPosition|BaseGraphic.TimePosition
graphic/primitive/BasePointPrimitive.js 74

位置坐标 （笛卡尔坐标）, 赋值时可以传入LatLngPoint对象

继承自:
  - BasePointPrimitive#position

#### 只读 positionShow : Cesium.Cartesian3
graphic/primitive/BasePointPrimitive.js 166

当前实时位置坐标（笛卡尔坐标）

继承自:
  - BasePointPrimitive#positionShow

#### 只读 positionsShow : Array.<Cesium.Cartesian3>
graphic/primitive/BasePointPrimitive.js 157

同 positions只是为了兼容entity的同名属性

继承自:
  - BasePointPrimitive#positionsShow

#### property : Cesium.SampledPositionProperty|Cesium.CallbackProperty
graphic/primitive/BasePointPrimitive.js 548

动态位置坐标

继承自:
  - BasePointPrimitive#property

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

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

继承自:
  - Route#readyPromise

##### 使用示例:

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

#### roll : number
graphic/primitive/BasePointPrimitive.js 293

滚转角，左右摆动的角度，0至360度角度值
提示：父类属性，非所有子类都具备

继承自:
  - BasePointPrimitive#roll

#### 只读 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

#### 只读 timeRange : object
graphic/primitive/BasePointPrimitive.js 639

获取当前时序坐标的开始时间和结束时间,返回的是Cesium.JulianDate格式

继承自:
  - BasePointPrimitive#timeRange

#### 只读 timeRangeStr : object
graphic/primitive/BasePointPrimitive.js 648

获取当前时序坐标的开始时间和结束时间,返回的是时间字符串

继承自:
  - BasePointPrimitive#timeRangeStr

#### 只读 tle : Tle
plugins/mars3d-space/graphic/Satellite.js 120

卫星TLE算法类对象

#### 只读 trackedEntity : Cesium.Entity|*
graphic/primitive/BasePointPrimitive.js 328

用于 map.trackedEntity 追踪的

继承自:
  - BasePointPrimitive#trackedEntity

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

墙体 子对象

继承自:
  - Route#wall

### 方法

#### addTimePosition(point, currTime) → BasePointPrimitive
graphic/primitive/BasePointPrimitive.js 669

设置并添加动画轨迹位置，按“指定时间”运动到达“指定位置”。 【仅LabelPrimitive、PointPrimitive、BillboardPrimitive、ModelPrimitive 等部分子类支持】

参数名称 | 类型 | 默认值 | 描述信息
--- | --- | --- | ---
`point` | LngLatPoint | Cesium.Cartesian3 | Array.<number> |  | 指定位置坐标
`currTime` | Cesium.JulianDate | Date | string | number | `Cesium.JulianDate.now()` | 可选 指定时间。当为String时，可以传入'2021-01-01 12:13:00'; 当为Number时，可以传入当前时间延迟的秒数。

##### 返回值:

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

继承自:
  - BasePointPrimitive#addTimePosition

#### autoSurfaceHeight(options) → Promise.<object>
graphic/primitive/BasePointPrimitive.js 741

异步计算更新坐标高度进行贴地(或贴模型)，内部自动调用`PointUtil#getSurfaceHeight`方法处理。

参数名称 | 类型 | 默认值 | 描述信息
--- | --- | --- | ---
`options` | object | `{}` | 可选 参数对象:
参数名称 | 类型 | 默认值 | 描述信息
--- | --- | --- | ---
`has3dtiles` | boolean | `auto` | 可选 是否在3dtiles模型上分析（模型分析较慢，按需开启）,默认内部根据点的位置自动判断（但可能不准）
`objectsToExclude` | Array.<object> |  | 可选 贴模型分析时，排除的不进行贴模型计算的模型对象，可以是： primitives, entities, 或 3D Tiles features

##### 返回值:

异步计算完成的Promise

继承自:
  - BasePointPrimitive#autoSurfaceHeight

#### clearTimePostion(maxCacheCount) → void
graphic/primitive/BasePointPrimitive.js 657

清除所有时序动态坐标

参数名称 | 类型 | 描述信息
--- | --- | ---
`maxCacheCount` | number | 可选 保留的坐标数量，默认清除所有。

##### 返回值:

继承自:
  - BasePointPrimitive#clearTimePostion

#### 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) → Promise.<boolean>
plugins/mars3d-space/graphic/Satellite.js 585

定位到卫星当前所在位置

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

##### 返回值:

如果飞行成功则解析为true的承诺，如果当前未在场景中可视化目标或取消飞行，则为false的Promise

#### 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

#### 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

#### startDraw(layer) → void
plugins/mars3d-space/graphic/Satellite.js 625

开始绘制矢量数据，绘制的数据会加载在layer图层。

参数名称 | 类型 | 描述信息
--- | --- | ---
`layer` | GraphicLayer | 图层

##### 返回值:

无

### 定义的类型

#### mars3d.graphic.Satellite.EventType
plugins/mars3d-space/graphic/Satellite.js 8

当前类支持的`EventType`事件类型

##### 属性:

属性名称 | 类型 | 描述信息
--- | --- | ---
`change` | string | 卫星位置变化了

##### 使用示例:

    //绑定监听事件
    graphic.on(mars3d.EventType.change, function (event) {
      console.log('卫星位置发送了变化', event)
    })

##### 参考:

- BaseClass#on
- BaseClass#off