# I3SLayer
查阅Cesium API

#### new mars3d.layer.I3SLayer(options)
layer/graphicLayer/I3SLayer.js 40

I3S 三维模型图层。

参数名称 | 类型 | 描述信息
--- | --- | ---
`options` | object | 参数对象, 包括以下：
参数名称 | 类型 | 默认值 | 描述信息
--- | --- | --- | ---
`url` | string | Cesium.Resource |  | tileset的主JSON文件的 url
`traceFetches` | boolean | `false` | 可选 调试选项。当为true时，每当获取I3S tile时记录一条消息。
`geoidTiledTerrainProvider` | object | Cesium.ArcGISTiledElevationTerrainProvider |  | 可选 arcgis地形服务。如果定义了，I3S模型将基于此地形服务的偏移量进行移位。需要将与重力相关高度的I3S数据集定位在正确的位置。 //以下是TilesetLayer图层参数
`position` | object |  | 可选 自定义新的中心点位置（移动模型）
参数名称 | 类型 | 描述信息
--- | --- | ---
`lng` | number | 可选 经度值, -180 至 180
`lat` | number | 可选 纬度值, -90 至 90
`alt` | number | 可选 高度值（单位：米）
`alt_offset` | number | 可选 相对于模型本身高度的偏移值（单位：米） ，如果有alt时已alt优先。
`rotation` | object |  | 可选 自定义旋转方向（旋转模型）
参数名称 | 类型 | 描述信息
--- | --- | ---
`x` | number | X方向，角度值0至360
`y` | number | Y方向，角度值0至360
`z` | number | 四周方向，角度值0至360
`scale` | number | `1` | 可选 自定义缩放比例，整体等比例缩放
`scaleX` | number | `1` | 可选 单独自定义缩放X轴方向比例
`scaleY` | number | `1` | 可选 单独自定义缩放Y轴方向比例
`scaleZ` | number | `1` | 可选 单独自定义缩放Z轴方向比例 //以下是Cesium3DTileset参数
`maximumScreenSpaceError` | number | `16` | 可选 用于驱动细化细节级别的最大屏幕空间错误。可以简单理解为：数值加大，能让最终成像变模糊。
`maxMemory` | number | `1024` | 可选 最大缓存内存大小(MB), 内部换算给 cacheBytes = maxMemory10241024、maximumCacheOverflowBytes = cacheBytes * 1.5 (另：如果同时配置了cacheBytes、maximumMemoryUsage时该参数无效)
`cacheBytes` | number |  | 可选 如果缓存包含当前视图不需要的块，则块缓存将被修剪到的大小(以字节为单位)
`maximumCacheOverflowBytes` | number |  | 可选 如果当前视图需要超过`Cesium3DTileset#cacheBytes`，则允许缓存净空的最大额外内存(以字节为单位)。
`maximumMemoryUsage` | number |  | 可选 【cesium 1.107+弃用】数据集可以使用的最大内存量(以MB计)，这个参数要根据当前客户端显卡显存来配置，如果我们场景只显示这一个模型数据，这个可以设置到显存的50% 左右，比如我的显存是4G，这个可以设置到2048左右。那么既保证不超过显存限制，又可以最大利用显存缓存。
`style` | object | Cesium.Cesium3DTileStyle | function |  | 可选 模型样式， 使用3D Tiles Styling language.
`marsJzwStyle` | boolean | string | `false` | 可选 开启或设置建筑物特效样式。
`customShader` | Cesium.CustomShader |  | 可选 自定义shader效果
`allowDrillPick` | boolean | function |  | 可选 是否允许鼠标穿透拾取
`shadows` | Cesium.ShadowMode | `ShadowMode.ENABLED` | 可选 确定tileset是否投射或接收来自光源的阴影。
`cullWithChildrenBounds` | boolean | `true` | 可选 优化选择。是否使用子绑定卷的并集来筛选贴图。
`cullRequestsWhileMoving` | boolean | `true` | 可选 优化选择。不要要求贴图，当他们回来的时候可能不会使用，因为相机的运动。这个优化只适用于固定瓷砖组。
`cullRequestsWhileMovingMultiplier` | number | `60.0` | 可选 优化选择。在移动时选择请求时使用的倍增器。越大的选择性越强，越小的选择性越弱。值越小能够更快的剔除。
`preloadWhenHidden` | boolean | `false` | 可选 当true时，tileset.show是false，也去预加载数据。
`preloadFlightDestinations` | boolean | `true` | 可选 优化选择。当摄像机在飞行时，在摄像机的飞行目的地预加载贴图。
`preferLeaves` | boolean | `false` | 可选 优化选择。最好先加载上叶子节点数据。这个参数默认是false，同等条件下，叶子节点会优先加载。但是Cesium的tile加载优先级有很多考虑条件，这个只是其中之一，如果skipLevelOfDetail=false，这个参数几乎无意义。所以要配合skipLevelOfDetail=true来使用，此时设置preferLeaves=true。这样我们就能最快的看见符合当前视觉精度的块，对于提升大数据以及网络环境不好的前提下有一点点改善意义。
`dynamicScreenSpaceError` | boolean | `true` | 可选 优化选择。减少远离摄像头的贴图的屏幕空间误差。true时会在真正的全屏加载完之后才清晰化模型.
`dynamicScreenSpaceErrorDensity` | number | `0.00278` | 可选 密度用来调整动态画面空间误差，类似于雾密度。
`dynamicScreenSpaceErrorFactor` | number | `4.0` | 可选 用于增加计算的动态屏幕空间误差的因素。
`dynamicScreenSpaceErrorHeightFalloff` | number | `0.25` | 可选 瓷砖密度开始下降时的高度之比。
`progressiveResolutionHeightFraction` | number | `0.3` | 可选 优化选择。如果在(0.0,0.5)之间，在屏幕空间或以上的瓷砖错误降低屏幕分辨率 `progressiveResolutionHeightFraction*screenHeight` 将优先。这可以帮助得到一个快速层的瓷砖下来，而全分辨率的瓷砖继续加载。
`foveatedScreenSpaceError` | boolean | `true` | 可选 优化选择。通过暂时提高屏幕边缘的贴图的屏幕空间误差，优先加载屏幕中央的贴图。一旦所有由`cesium3dtilesset#foveatedConeSize`确定的屏幕中央的贴图被加载，屏幕空间错误就会恢复正常。
`foveatedConeSize` | number | `0.1` | 可选 优化选择。当`cesium3dtilesset#foveatedScreenSpaceError`为true时使用，以控制决定哪些贴图被延迟的锥大小。装在这个圆锥体里的瓷砖会立即被装入。锥外的贴图有可能被延迟，这取决于它们在锥外的距离和它们的屏幕空间误差。这是由`I3SDataProvider#foveatedInterpolationCallback`和`I3SDataProvider#foveatedMinimumScreenSpaceErrorRelaxation`控制的。设置为0.0意味着圆锥将是由相机位置和它的视图方向形成的线。将此设置为1.0意味着圆锥将包含相机的整个视场，禁用此效果。
`foveatedMinimumScreenSpaceErrorRelaxation` | number | `0.0` | 可选 优化选择。当`cesium3dtilesset#foveatedScreenSpaceError`为true时使用，以控制中心锥形以外的贴图的初始屏幕空间误差松弛。屏幕空间错误将基于所提供的`I3SDataProvider#foveatedInterpolationCallback`从tileset值开始直到`I3SDataProvider#maximumScreenSpaceError`。
`foveatedInterpolationCallback` | object | `Math.lerp` | 可选 优化选择。当`cesium3dtilesset#foveatedScreenSpaceError`为true时使用，以控制中心锥形以外的贴图的初始屏幕空间误差松弛。优化选择。当`I3SDataProvider#foveatedScreenSpaceError`为true时使用，以控制凸出圆锥外的贴图的屏幕空间误差提高多少，插值在`I3SDataProvider#foveatedminimumscreenspaceerror`和`I3SDataProvider#maximumScreenSpaceError`之间。
`foveatedTimeDelay` | number | `0.2` | 可选 优化选择。当`cesium3dtilesset#foveatedScreenSpaceError`为true时使用，以控制中心锥形以外的贴图的初始屏幕空间误差松弛。优化选择。优化选择。当`cesium3dtilesset#foveatedScreenSpaceError`为true时使用，以控制在延迟tile开始加载前摄像机停止移动后等待多长时间(秒)。这个时间延迟阻止了在相机移动时请求屏幕边缘的贴图。将此设置为0.0将立即请求任何给定视图中的所有贴图。
`skipLevelOfDetail` | boolean | `false` | 可选 优化选择。确定在遍历过程中是否应应用跳过详细信息的级别。是Cesium在1.5x 引入的一个优化参数，这个参数在金字塔数据加载中，可以跳过一些级别，这样整体的效率会高一些，数据占用也会小一些。但是带来的异常是：1） 加载过程中闪烁，看起来像是透过去了，数据载入完成后正常。2，有些异常的面片，这个还是因为两级LOD之间数据差异较大，导致的。当这个参数设置false，两级之间的变化更平滑，不会跳跃穿透，但是清晰的数据需要更长，而且还有个致命问题，一旦某一个tile数据无法请求到或者失败，导致一直不清晰。所以我们建议：对于网络条件好，并且数据总量较小的情况下，可以设置false，提升数据显示质量。
`baseScreenSpaceError` | number | `1024` | 可选 当skipLevelOfDetail为true时，跳过详细级别之前必须达到的屏幕空间错误。
`skipScreenSpaceErrorFactor` | number | `16` | 可选 当skipLevelOfDetail = true时，一个定义要跳过的最小屏幕空间错误的乘法器。与skipLevels一起使用，以决定加载哪些贴图。
`skipLevels` | number | `1` | 可选 当skipLevelOfDetail是true，一个常量定义了加载tiles时要跳过的最小级别数。当它为0时，不会跳过任何级别。与skipScreenSpaceErrorFactor一起使用，以决定加载哪些贴图。
`immediatelyLoadDesiredLevelOfDetail` | boolean | `false` | 可选 当skipLevelOfDetail为true时，只有满足最大屏幕空间错误的tiles才会被下载。跳过因素将被忽略，并且只加载所需的块。
`loadSiblings` | boolean | `false` | 可选 当skipLevelOfDetail = true时，判断遍历过程中是否总是下载可见块的兄弟块。如果为true则不会在已加载完模型后，自动从中心开始超清化模型。
`clippingPlanes` | Cesium.ClippingPlaneCollection |  | 可选 `Cesium.ClippingPlaneCollection`用于选择性地禁用tile集的渲染。
`classificationType` | Cesium.ClassificationType |  | 可选 确定地形、3D贴图或两者都将被这个贴图集分类。有关限制和限制的详细信息，请参阅`#classificationType`。
`pointCloudShading` | object |  | 可选 基于几何误差和光照构造一个`Cesium.PointCloudShading`对象来控制点衰减的选项。
`lightColor` | Cesium.Cartesian3 |  | 可选 光的颜色当遮光模型。当undefined场景的浅色被使用代替。表示，rgb的倍数，new Cesium.Cartesian3(100.0,100.0, 100.0)表示白光增强到100倍。对Pbrt材质有效，倾斜摄影不生效。
`backFaceCulling` | boolean | `true` | 可选 是否剔除面向背面的几何图形。当为真时，背面剔除由glTF材质的双面属性决定;当为false时，禁用背面剔除。
`debugHeatmapTilePropertyName` | string |  | 可选 是否剔除面向背面的几何图形。当为真时，背面剔除由glTF材质的双面属性决定;作为热图着色的tile变量。所有渲染的贴图都将相对于其他指定的变量值着色。
`pickPrimitive` | object |  | 可选 要在拾取过程中呈现的原语，而不是tile集合。
`enableDebugWireframe` | boolean | `false` | 可选 仅供调试。是否可以通过debugWireframe来切换查看模型的三角网线框图。
`debugWireframe` | boolean | `false` | 可选 仅供调试。是否打开模型的三角网线框图。
`popup` | string | Array.<Globe.getTemplateHtml_template> | function |  | 可选 绑定的popup弹窗值，也可以bindPopup方法绑定，支持：'all'、数组、字符串模板
`popupOptions` | Popup.StyleOptions |  | 可选 popup弹窗时的配置参数，也支持如pointerEvents等`Popup`构造参数,还包括：
参数名称 | 类型 | 默认值 | 描述信息
--- | --- | --- | ---
`title` | string |  | 可选 固定的标题名称
`titleField` | string |  | 可选 标题对应的属性字段名称
`noTitle` | string |  | 可选 不显示标题
`showNull` | string | `false` | 可选 是否显示空值
`tooltip` | string | Array.<Globe.getTemplateHtml_template> | function | object |  | 可选 绑定的tooltip弹窗值，也可以bindTooltip方法绑定，参数与popup属性完全相同。
`tooltipOptions` | Tooltip.StyleOptions |  | 可选 tooltip弹窗时的配置参数，也支持如pointerEvents等`Tooltip`构造参数,还包括：
参数名称 | 类型 | 默认值 | 描述信息
--- | --- | --- | ---
`title` | string |  | 可选 固定的标题名称
`titleField` | string |  | 可选 标题对应的属性字段名称
`noTitle` | string |  | 可选 不显示标题
`showNull` | string | `false` | 可选 是否显示空值
`contextmenuItems` | object |  | 可选 绑定的右键菜单值，也可以bindContextMenu方法绑定
`id` | string | number | `mars3d.Util.createGuid()` | 可选 图层id标识
`pid` | string | number |  | 可选 图层父级的id，一般图层管理中使用
`name` | string |  | 可选 图层名称
`show` | boolean | `true` | 可选 图层是否显示
`eventParent` | BaseClass | boolean |  | 可选 指定的事件冒泡对象，默认为map对象，false时不冒泡
`center` | object |  | 可选 图层自定义定位视角 `Map#setCameraView`
参数名称 | 类型 | 描述信息
--- | --- | ---
`lng` | number | 经度值, -180至180
`lat` | number | 纬度值, -90至90
`alt` | number | 可选 高度值
`heading` | number | 可选 方向角度值，绕垂直于地心的轴旋转角度, 0至360
`pitch` | number | 可选 俯仰角度值，绕纬度线旋转角度, -90至90
`roll` | number | 可选 翻滚角度值，绕经度线旋转角度, -90至90
`flyTo` | boolean |  | 可选 加载完成数据后是否自动飞行定位到数据所在的区域。
`flyToOptions` | object |  | 可选 加载完成数据后是否自动飞行定位到数据所在的区域的对应 `BaseLayer#flyTo`方法参数。

##### 参考:

- Cesium.I3SDataProvider

- `支持的事件类型`

### 继承自

- BaseGraphicLayer

### 属性值

#### availability : Cesium.TimeIntervalCollection
layer/BaseLayer.js 326

指定时间范围内显示该对象 [提示：仅部分子类实现，非所有对象都支持]

继承自:
  - BaseLayer#availability

##### 使用示例:

    // 普通传值方式，多个【建议】
    layer.availability = [
      { start: "2017-08-25 08:00:00", stop: "2017-08-25 08:01:20", isStartIncluded: true, isStopIncluded: false },
      { start: "2017-08-25 09:00:00", duration: 10 } //支持不配置stop，直接配置duration秒数时长
    ]
    // 也支持相对时间的 秒数 传值（相对于map.clock.startTime）
    layer.availability = [
      { start: 0, stop: 10, isStartIncluded: true, isStopIncluded: false },
      { start:30, duration: 10 } //支持不配置stop，直接配置duration秒数时长
    ]

    // 普通传值方式，单个
    layer.availability = { start: "2017-08-25 08:00:00", stop: "2017-08-25 08:01:20", isStartIncluded: true, isStopIncluded: false }

    // cesium原生写法, 多个
    layer.availability = new Cesium.TimeIntervalCollection([
      new Cesium.TimeInterval({
        start: Cesium.JulianDate.fromDate(new Date("2017-08-25 08:00:00")),
        stop: Cesium.JulianDate.fromDate(new Date("2017-08-25 08:00:20")),
        isStartIncluded: true,
        isStopIncluded: false
      }),
    ])

    // cesium原生写法,单个
    layer.availability = new Cesium.TimeInterval({
      start: Cesium.JulianDate.fromDate(new Date("2017-08-25 08:00:00")),
      stop: Cesium.JulianDate.fromDate(new Date("2017-08-25 08:00:20")),
      isStartIncluded: true,
      isStopIncluded: false
    })

#### 只读 hasOpacity : boolean
layer/BaseLayer.js 262

是否可以调整透明度

继承自:
  - BaseLayer#hasOpacity

#### id : string|number
layer/BaseLayer.js 90

对象的id标识

继承自:
  - BaseLayer#id

#### 只读 isAdded : boolean
layer/BaseLayer.js 151

是否已添加到地图

继承自:
  - BaseLayer#isAdded

#### 只读 isDestroy : boolean
layer/BaseLayer.js 161

是否已经销毁了

继承自:
  - BaseLayer#isDestroy

#### 只读 isPrivate : boolean
layer/BaseLayer.js 170

是否Mars3D内部的私有对象，如标绘拖拽点等

继承自:
  - BaseLayer#isPrivate

#### 只读 layer : Cesium.I3SDataProvider
layer/graphicLayer/I3SLayer.js 161

模型对应的 I3SDataProvider对象

#### marsJzwStyle : boolean|object
layer/graphicLayer/I3SLayer.js 169

开启或设置建筑物特效样式。

#### 只读 modelUpAxis : Cesium.Axis
layer/graphicLayer/I3SLayer.js 183

模型的向上轴，比如Cesium.Axis.Z 或 Cesium.Axis.Y

#### name : string
layer/BaseLayer.js 103

名称

继承自:
  - BaseLayer#name

#### opacity : number
layer/BaseLayer.js 274

透明度，取值范围：0.0-1.0

继承自:
  - BaseLayer#opacity

#### pid : string|number
layer/BaseLayer.js 116

对象的pid标识

继承自:
  - BaseLayer#pid

#### 只读 readyPromise : Promise.<(BaseLayer|object)>
layer/BaseLayer.js 186

获取图层完成解析加载完成的Promise承诺, 等价于load事件(区别在于load事件必须在load完成前绑定才能监听)。

继承自:
  - BaseLayer#readyPromise

##### 使用示例:

    tiles3dLayer.readyPromise.then(function(layer) {
        console.log("load完成", layer)
      })

#### show : boolean
layer/BaseLayer.js 199

显示隐藏状态

继承自:
  - BaseLayer#show

#### 只读 state : State
layer/BaseLayer.js 141

当前对象的状态

继承自:
  - BaseLayer#state

#### 只读 type : string
layer/BaseLayer.js 130

图层类型

继承自:
  - BaseLayer#type

### 方法

#### abstract _mountedHook() → void
layer/BaseLayer.js 540

对象添加到地图前创建一些对象的钩子方法， 只会调用一次

##### 返回值:

无

继承自:
  - BaseLayer#_mountedHook

#### addTo(map) → BaseLayer
layer/BaseLayer.js 429

添加到地图上，同 map.addThing

参数名称 | 类型 | 描述信息
--- | --- | ---
`map` | Map | 地图对象

##### 返回值:

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

继承自:
  - BaseLayer#addTo

#### bindContextMenu(content, options) → BaseGraphicLayer
layer/BaseGraphicLayer.js 459

绑定右键菜单

参数名称 | 类型 | 默认值 | 描述信息
--- | --- | --- | ---
`content` | Array.<object> |  | 右键菜单配置数组，数组中每一项包括：
参数名称 | 类型 | 描述信息
--- | --- | ---
`text` | string | function | 可选 菜单文字
`icon` | string | 可选 图标,可以是：图片url路径、base64字符串、svg字符串、字体图标class名
`show` | function | boolean | 可选 菜单项是否显示的回调方法
`callback` | function | 可选 菜单项单击后的回调方法
`children` | Array.<object> | 可选 当有二级子菜单时，配置数组。
`options` | object | `{}` | 可选 控制参数
参数名称 | 类型 | 描述信息
--- | --- | ---
`mergeMap` | boolean | 可选 是否合并一起显示map默认右键菜单
`offsetX` | number | 可选 用于非规则对象时，横向偏移的px像素值
`offsetY` | number | 可选 用于非规则对象时，垂直方向偏移的px像素值

##### 返回值:

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

继承自:
  - BaseGraphicLayer#bindContextMenu

##### 使用示例:

    //在layer上绑定右键菜单
          graphicLayer.bindContextMenu([
            {
              text: '删除对象',
              icon: 'fa fa-trash-o',
              callback: function (e) {
                let graphic = e.graphic
                if (graphic) {
                  graphicLayer.removeGraphic(graphic)
                }
              },
            },
            {
              text: '计算长度',
              icon: 'fa fa-medium',
              show: function (e) {
                let graphic = e.graphic
                return graphic.type === 'polyline'
              },
              callback: function (e) {
                let graphic = e.graphic
                let strDis = mars3d.MeasureUtil.formatDistance(graphic.distance)
                alert('该对象的长度为:' + strDis)
              },
            },
          ])

#### bindHighlight(options) → void
layer/BaseGraphicLayer.js 139

绑定鼠标移入或单击后的 对象高亮

参数名称 | 类型 | 描述信息
--- | --- | ---
`options` | object | 可选 参数：
参数名称 | 类型 | 默认值 | 描述信息
--- | --- | --- | ---
`type` | string | `'mouseOver'` | 可选 事件类型，默认为鼠标移入高亮，也可以指定'click'单击高亮。
`多个参数` | string |  | 可选 高亮的样式，具体见各`GraphicType`矢量数据的style参数。

##### 返回值:

无

继承自:
  - BaseGraphicLayer#bindHighlight

#### bindPopup(content, options) → BaseGraphicLayer
layer/BaseGraphicLayer.js 246

绑定鼠标单击对象后的弹窗。

参数名称 | 类型 | 描述信息
--- | --- | ---
`content` | string | function | 弹窗内容html字符串，或者回调方法。
`options` | Popup.StyleOptions | 可选 控制参数

##### 返回值:

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

继承自:
  - BaseGraphicLayer#bindPopup

#### bindTooltip(content, options) → BaseGraphicLayer
layer/BaseGraphicLayer.js 327

绑定鼠标移入的弹窗

参数名称 | 类型 | 描述信息
--- | --- | ---
`content` | string | function | 弹窗内容html字符串，或者回调方法。
`options` | Tooltip.StyleOptions | 可选 控制参数

##### 返回值:

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

继承自:
  - BaseGraphicLayer#bindTooltip

#### closeContextMenu() → BaseGraphicLayer
layer/BaseGraphicLayer.js 507

关闭右键菜单

##### 返回值:

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

继承自:
  - BaseGraphicLayer#closeContextMenu

#### closeHighlight() → void
layer/BaseGraphicLayer.js 211

清除已高亮的矢量对象

##### 返回值:

无

继承自:
  - BaseGraphicLayer#closeHighlight

#### closePopup() → BaseGraphicLayer
layer/BaseGraphicLayer.js 291

关闭弹窗

##### 返回值:

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

继承自:
  - BaseGraphicLayer#closePopup

#### closeSmallTooltip() → BaseGraphicLayer
layer/BaseGraphicLayer.js 536

关闭小提示窗

##### 返回值:

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

继承自:
  - BaseGraphicLayer#closeSmallTooltip

#### closeTooltip() → BaseGraphicLayer
layer/BaseGraphicLayer.js 376

关闭弹窗

##### 返回值:

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

继承自:
  - BaseGraphicLayer#closeTooltip

#### eachTilesetLayer(method, context) → GroupLayer
layer/graphicLayer/I3SLayer.js 201

遍历每一个Tileset子图层并将其作为参数传递给回调函数

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

##### 返回值:

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

#### async flyTo(options) → Promise.<boolean>
layer/BaseLayer.js 630

飞行定位至图层数据所在的视角

参数名称 | 类型 | 默认值 | 描述信息
--- | --- | --- | ---
`options` | object | `{}` | 可选 参数对象:
参数名称 | 类型 | 默认值 | 描述信息
--- | --- | --- | ---
`radius` | number |  | 可选 点状数据时，相机距离目标点的距离（单位：米）
`scale` | number | `1.2` | 可选 线面数据时，缩放比例，可以控制视角比矩形略大一些，这样效果更友好。
`heading` | number |  | 可选 方向角度值，绕垂直于地心的轴旋转角度, 0至360
`pitch` | number |  | 可选 俯仰角度值，绕纬度线旋转角度, -90至90
`roll` | number |  | 可选 翻滚角度值，绕经度线旋转角度, -90至90
`minHeight` | number |  | 可选 定位时相机的最小高度值，用于控制避免异常数据
`maxHeight` | number |  | 可选 定位时相机的最大高度值，用于控制避免异常数据
`height` | number |  | 可选 矩形区域时的高度值, 默认取地形高度值
`duration` | number |  | 可选 飞行时间（单位：秒）。如果省略，SDK内部会根据飞行距离计算出理想的飞行时间。
`onBefore` | function |  | 可选 飞行前对相关坐标等参数做额外的回调处理，比如目标点做自定义偏移处理。【部分图层支持】
`complete` | Cesium.Camera.FlightCompleteCallback |  | 可选 飞行完成后要执行的函数。
`cancel` | Cesium.Camera.FlightCancelledCallback |  | 可选 飞行取消时要执行的函数。
`endTransform` | Cesium.Matrix4 |  | 可选 变换矩阵表示飞行结束时相机所处的参照系。
`maximumHeight` | number |  | 可选 飞行高峰时的最大高度。
`pitchAdjustHeight` | number |  | 可选 如果相机飞得比这个值高，在飞行过程中调整俯仰以向下看，并保持地球在视口。
`flyOverLongitude` | number |  | 可选 地球上的两点之间总有两条路。这个选项迫使相机选择战斗方向飞过那个经度。
`flyOverLongitudeWeight` | number |  | 可选 仅在通过flyOverLongitude指定的lon上空飞行，只要该方式的时间不超过flyOverLongitudeWeight的短途时间。
`convert` | boolean | `true` | 可选 是否将目的地从世界坐标转换为场景坐标（仅在不使用3D时相关）。
`easingFunction` | Cesium.EasingFunction.Callback |  | 可选 控制在飞行过程中如何插值时间。

##### 返回值:

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

继承自:
  - BaseLayer#flyTo

#### getAvailabilityJson() → Array.<object>
layer/BaseLayer.js 350

获取时间范围的简单对象数组（转为相对map.clock.startTime的相对数字）

##### 返回值:

时间对象列表

继承自:
  - BaseLayer#getAvailabilityJson

#### getAvailabilityShow(time) → boolean
layer/BaseLayer.js 360

获取指定时间下的时序对应的 显示隐藏 状态

参数名称 | 类型 | 描述信息
--- | --- | ---
`time` | Cesium.JulianDate | 指定时间

##### 返回值:

显示隐藏 状态

继承自:
  - BaseLayer#getAvailabilityShow

#### getContextMenu() → Array.<object>
layer/BaseGraphicLayer.js 410

获取绑定的右键菜单数组

##### 返回值:

右键菜单数组

继承自:
  - BaseGraphicLayer#getContextMenu

#### getRealShow(time) → boolean
layer/BaseLayer.js 245

获取当前对象真实实际的显示状态

参数名称 | 类型 | 描述信息
--- | --- | ---
`time` | Cesium.JulianDate | 当前时间

##### 返回值:

真实的实时显示状态，当时序范围外，被聚合时返回的是false

继承自:
  - BaseLayer#getRealShow

#### hasContextMenu() → boolean
layer/BaseGraphicLayer.js 389

是否有绑定的右键菜单

##### 返回值:

是否有绑定

继承自:
  - BaseGraphicLayer#hasContextMenu

#### hasPopup() → boolean
layer/BaseGraphicLayer.js 222

是否存在Popup绑定，判断图层及内部所有矢量数据

##### 返回值:

是否存在Popup绑定

继承自:
  - BaseGraphicLayer#hasPopup

#### hasTooltip() → boolean
layer/BaseGraphicLayer.js 304

是否绑定了tooltip

##### 返回值:

是否绑定

继承自:
  - BaseGraphicLayer#hasTooltip

#### openContextMenu(position) → BaseGraphicLayer
layer/BaseGraphicLayer.js 491

打开右键菜单

参数名称 | 类型 | 描述信息
--- | --- | ---
`position` | BaseGraphic | Cesium.Cartesian3 | 矢量对象 或 显示的位置

##### 返回值:

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

继承自:
  - BaseGraphicLayer#openContextMenu

#### openHighlight(graphic, event) → void
layer/BaseGraphicLayer.js 200

高亮对象

参数名称 | 类型 | 描述信息
--- | --- | ---
`graphic` | BaseGraphic | 高亮的矢量对，类型支持`GraphicType`
`event` | object | 可选 事件对象

##### 返回值:

无

继承自:
  - BaseGraphicLayer#openHighlight

#### openPopup(position) → BaseGraphicLayer
layer/BaseGraphicLayer.js 277

打开绑定的弹窗

参数名称 | 类型 | 描述信息
--- | --- | ---
`position` | BaseGraphic | LngLatPoint | Cesium.Cartesian3 | 矢量对象 或 显示的位置

##### 返回值:

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

继承自:
  - BaseGraphicLayer#openPopup

#### openSmallTooltip(position, message) → BaseGraphicLayer
layer/BaseGraphicLayer.js 524

显示小提示窗，一般用于鼠标操作的提示。

参数名称 | 类型 | 描述信息
--- | --- | ---
`position` | Cesium.Cartesian2 | Cesium.Cartesian3 | 显示的屏幕坐标位置 或 笛卡尔坐标位置
`message` | * | 显示的内容

##### 返回值:

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

继承自:
  - BaseGraphicLayer#openSmallTooltip

#### openTooltip(position) → BaseGraphicLayer
layer/BaseGraphicLayer.js 360

打开绑定的tooltip弹窗

参数名称 | 类型 | 描述信息
--- | --- | ---
`position` | BaseGraphic | LngLatPoint | Cesium.Cartesian3 | graphic矢量对象 或 显示的位置

##### 返回值:

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

继承自:
  - BaseGraphicLayer#openTooltip

#### reload() → void
layer/graphicLayer/I3SLayer.js 298

重新加载模型

##### 返回值:

#### remove(destroy) → void
layer/BaseLayer.js 442

从地图上移除，同map.removeThing

参数名称 | 类型 | 描述信息
--- | --- | ---
`destroy` | boolean | 可选 是否调用destroy释放

##### 返回值:

无

继承自:
  - BaseLayer#remove

#### setOptions(options, funOptions) → BaseLayer
layer/BaseLayer.js 669

更新图层参数

参数名称 | 类型 | 描述信息
--- | --- | ---
`options` | object | 与类的构造方法参数相同
`funOptions` | object | 可选 方法参数
参数名称 | 类型 | 默认值 | 描述信息
--- | --- | --- | ---
`merge` | boolean | `true` | 可选 是否合并参数, 如是完整覆盖不合并老的options，请传入fasle

##### 返回值:

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

继承自:
  - BaseLayer#setOptions

#### toJSON(options) → object
layer/BaseLayer.js 710

将图层转为Json简单对象，用于存储后再传参加载

参数名称 | 类型 | 描述信息
--- | --- | ---
`options` | object | 可选 参数对象:
参数名称 | 类型 | 默认值 | 描述信息
--- | --- | --- | ---
`full` | boolean | `false` | 可选 （tileset模型时）导出冗余的完整参数，包含完整position、transform等信息。
`noAlt` | boolean |  | 可选 (矢量图层中)不导出高度值
`toNum` | boolean |  | 可选 (矢量图层中)坐标是time时序坐标时，time值是否转为数字秒数
`stopEdit` | boolean | `false` | 可选 (矢量图层中)是否停止绘制或编辑

##### 返回值:

Json简单对象

继承自:
  - BaseLayer#toJSON

#### unbindContextMenu(bubbling) → BaseGraphicLayer
layer/BaseGraphicLayer.js 474

解除绑定的右键菜单

参数名称 | 类型 | 默认值 | 描述信息
--- | --- | --- | ---
`bubbling` | boolean | `false` | 可选 单击事件中是否继续冒泡查找

##### 返回值:

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

继承自:
  - BaseGraphicLayer#unbindContextMenu

#### unbindHighlight() → void
layer/BaseGraphicLayer.js 156

解绑鼠标移入或单击后的高亮处理

##### 返回值:

无

继承自:
  - BaseGraphicLayer#unbindHighlight

#### unbindPopup(bubbling) → BaseGraphicLayer
layer/BaseGraphicLayer.js 261

解除绑定的鼠标单击对象后的弹窗。

参数名称 | 类型 | 默认值 | 描述信息
--- | --- | --- | ---
`bubbling` | boolean | `false` | 可选 单击事件中是否继续冒泡查找

##### 返回值:

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

继承自:
  - BaseGraphicLayer#unbindPopup

#### unbindTooltip(bubbling) → BaseGraphicLayer
layer/BaseGraphicLayer.js 343

解除绑定的鼠标移入对象后的弹窗。

参数名称 | 类型 | 默认值 | 描述信息
--- | --- | --- | ---
`bubbling` | boolean | `false` | 可选 单击事件中是否继续冒泡查找

##### 返回值:

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

继承自:
  - BaseGraphicLayer#unbindTooltip

### 定义的类型

#### mars3d.layer.I3SLayer.EventType
layer/graphicLayer/I3SLayer.js 10

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

##### 属性:

属性名称 | 类型 | 描述信息
--- | --- | ---
`add` | string | 添加对象
`remove` | string | 移除对象
`show` | string | 显示了对象
`hide` | string | 隐藏了对象
`click` | string | 左键单击 鼠标事件
`rightClick` | string | 右键单击 鼠标事件
`mouseOver` | string | 鼠标移入 鼠标事件
`mouseOut` | string | 鼠标移出 鼠标事件
`popupOpen` | string | popup弹窗打开后
`popupClose` | string | popup弹窗关闭
`tooltipOpen` | string | tooltip弹窗打开后
`tooltipClose` | string | tooltip弹窗关闭
`loadBefore` | string | 完成加载，但未做任何其他处理前
`load` | string | 完成加载，执行所有内部处理后

##### 使用示例:

    //绑定监听事件
    layer.on(mars3d.EventType.load, function (event) {
      console.log('矢量数据对象加载完成', event)
    })

##### 参考:

- BaseClass#on
- BaseClass#off