# ESMsTileset（Modelser实时3DTileset图层）

> 分类：**服务图层对象** | 引擎：Cesium/UE | 基类：否
> 继承链：`Destroyable -> ESSceneObject -> ESVisualObject -> ES3DTileset -> ESMsTileset`

ESMsTileset 是用于加载和操作 Modelser 实时 3D Tiles 图层的对象。

## JSON 示例

```json
{
            "id": "mstileset_xxx",
            "type": "ESMsTileset",
            "name": "实时3DTileset",
            "url": "http://localhost:9009/ts/info/ms01"
        }
```

## 属性

| 属性 | 类型 | 默认值 | 说明 | 来源 |
| --- | --- | --- | --- | --- |
| `actorTag` | string | "" | actorTag 标签，适用于 UE 引擎，用于绑定或创建场景中的对象。 | ES3DTileset |
| `allowPicking` | boolean | true | 是否允许拾取，默认值为 true。 | ES3DTileset |
| `cacheBytes` | - | 512 * 1024 * 1024 | 最大缓存占用，超过的会自动卸载，但视野范围内能看见的保留，单位为字节，默认值为 512MB。 | ES3DTileset |
| `clippingPlaneEdgeColor` | ESJColor | [1, 1, 1, 1] | 裁剪平面边缘颜色，以数组形式表示的 RGBA 颜色值，默认值为白色（[1, 1, 1, 1]）。 | ES3DTileset |
| `clippingPlaneEdgeWidth` | number | 2 | 裁剪平面边缘宽度，默认值为 2。 | ES3DTileset |
| `clippingPlaneEnabled` | boolean | true | 裁剪平面是否启用，默认值为 true。 | ES3DTileset |
| `collision` | boolean | true | 是否开启碰撞监测 默认true ,主要是UE使用 | ESVisualObject |
| `colorBlendMode` | 'HIGHLIGHT' \| 'REPLACE' \| 'MIX' | "HIGHLIGHT' as 'HIGHLIGHT' \| 'REPLACE' \| 'MIX" | 颜色混合模式，可选择 'HIGHLIGHT'（高亮）、'REPLACE'（替换） 或 'MIX'（混合），默认值为 'HIGHLIGHT'。 | ES3DTileset |
| `~~czmAtmosphereScatteringIntensity~~` | number | 2 | ⚠️已废弃 大气散射强度，默认值为 2。 | ES3DTileset |
| `czmBackFaceCulling` | boolean | true | 是否进行背面剔除，默认值为 true。 | ES3DTileset |
| `czmClassificationType` | string | "NONE" | 分类类型，可选择 'NONE'、'TERRAIN'、'CESIUM_3D_TILE' 或 'BOTH'，默认值为 'NONE'。 | ES3DTileset |
| `czmDebugShowBoundingVolume` | boolean | false | 是否显示调试用的边界体积，默认值为 false。 | ES3DTileset |
| `czmDebugShowContentBoundingVolume` | boolean | false | 是否显示调试用的内容边界体积，默认值为 false。 | ES3DTileset |
| `czmDebugWireframe` | boolean | false | 调试线框模式，仅Cesium引擎生效 | ES3DTileset |
| `czmEnvironmentMapManager` | ESJEnvironmentMapManagerType \| undefined | undefined | 动态环境贴图管理器，初始值为未定义。 | ES3DTileset |
| `czmImageBasedLightingFactor` | ESJVector2D | [1, 1] | 基于图像的光照因子，二维向量，默认值为 [1, 1]。 | ES3DTileset |
| `~~czmLuminanceAtZenith~~` | number | 2 | ⚠️已废弃 天顶亮度，默认值为 2。 | ES3DTileset |
| `czmMaximumMemoryUsage` | number | 512 | 最大内存使用量，单位为 MB，默认值为 512。 | ES3DTileset |
| `czmSkipLevelOfDetail` | boolean | false | 是否跳过细节层次，默认值为 false。 | ES3DTileset |
| `czmStyleJson` | JsonValue | {} | Cesium样式 JSON，初始值为空对象。 示例：{ color: "vec4(1,0,0,1)"} 参考：https://cesium.com/learn/cesiumjs/ref-doc/Cesium3DTileStyle.html?classFilter=style | ES3DTileset |
| `devTags` | string[] \| undefined | undefined | 对象类型名称相关的开发标签数组，使用 reactArrayWithUndefined 进行响应式处理，默认为 undefined。 | ESSceneObject |
| `earthdstoken` | string | "" | - | ESMsTileset |
| `execOnceFuncStr` | string \| undefined | undefined | 一次性执行函数的字符串表示，默认为 undefined。 | ESSceneObject |
| `extras` | JsonValue | undefined | 扩展属性 JSON，必须整体赋值，使用 reactJson 进行响应式处理，默认为 undefined。 | ESSceneObject |
| `featureIdLabel` | number | 0 | 特征 ID 标签，默认值为 0。 | ES3DTileset |
| `flyInParam` | ESJFlyInParam \| undefined | undefined | 飞入参数 | ESVisualObject |
| `flyToParam` | ESJFlyToParam \| undefined | undefined | 飞向参数 | ESVisualObject |
| `highlight` | boolean | false | 是否高亮，该属性仅在 UE 引擎中生效。 | ES3DTileset |
| `highlightColor` | ESJColor | [1, 0, 0, 1] | 高亮颜色，以数组形式表示的 RGBA 颜色值，默认值为红色（[1, 0, 0, 1]）。 | ES3DTileset |
| `highlightID` | number | 0 | 高亮 ID，用于标识高亮对象。 | ES3DTileset |
| `isSameIP` | boolean | false | - | ESMsTileset |
| `materialMode` | 'normal' \| 'technology' | "normal" | 材质模式，可选择 'normal'（常规模式） 或 'technology'（科技感模式）。 | ES3DTileset |
| `materialOverrideMap` | - | reactJsonWithUndefined({}) | 材质替换映射，初始值为未定义。 | ES3DTileset |
| `materialParams` | - | { baseColor: [0, 0.5, 1] } as ESJsonObjectType | 材质参数，包含基础颜色，默认基础颜色为 [0, 0.5, 1]。 | ES3DTileset |
| `maximumScreenSpaceError` | number | 16 | 最大屏幕空间误差，用于控制显示精度，默认值为 16。 | ES3DTileset |
| `name` | string | "未命名场景对象" | 对象名称，默认为 '未命名场景对象'。 | ESSceneObject |
| `offset` | ESJVector3D \| undefined | [0, 0, 0] | 偏移量，三维向量，初始值为未定义。 | ES3DTileset |
| `ref` | string \| undefined | undefined | 对象引用，设置后可通过对象管理器 objm.$refs.xxx 快速获取到对象，默认为 undefined。 | ESSceneObject |
| `rotation` | ESJVector3D | [0, 0, 0] | 旋转角度，三维向量，初始值为 [0, 0, 0]。 | ES3DTileset |
| `show` | boolean | true | 是否显示 默认true | ESVisualObject |
| `splitDirection` | ESJSplitDirectionType | "NONE" | 分割方向 | ES3DTileset |
| `toDestroyFuncStr` | string \| undefined | undefined | 销毁函数的字符串表示，默认为 undefined。 | ESSceneObject |
| `unionClippingRegions` | boolean | true | 是否合并裁剪区域，默认值为 true。 | ES3DTileset |
| `updateFuncStr` | string \| undefined | undefined | 更新函数的字符串表示，默认为 undefined。 | ESSceneObject |
| `url` | string \| ESJResource | "" | 服务地址，支持字符串或 ESJResource 类型。 | ES3DTileset |
| `useEarthDSToken` | boolean | false | - | ESMsTileset |

## 方法

| 方法 | 参数 | 返回 | 说明 | 来源 |
| --- | --- | --- | --- | --- |
| `addToViewer(viewer: ESViewer)` | viewer: ESViewer | - | 将对象添加到指定视口中。<br>**参数**：viewer - 要添加对象的视口。 | ESSceneObject |
| `calcFlyInParam()` | - | - | 触发计算飞入参数事件 | ESVisualObject |
| `calcFlyToParam()` | - | - | 触发计算飞向参数事件 | ESVisualObject |
| `createAttachedObject(createViewerPropSceneObject: (viewer: ESViewer) => Destroyable | undefined)` | createViewerPropSceneObject: (viewer: ESViewer) => Destroyable \| undefined | - | 创建与视口关联的对象，并返回一个销毁函数，用于手动销毁关联对象。<br>**参数**：createViewerPropSceneObject - 一个函数，用于创建与视口关联的对象。<br>**返回**：一个销毁函数，调用该函数可以销毁所有关联对象。 | ESSceneObject |
| `emptyFlyInParam()` | - | - | 清空飞入参数 | ESVisualObject |
| `emptyFlyToParam()` | - | - | 清空飞向参数 | ESVisualObject |
| `flush()` | - | - | 刷新对象，触发刷新事件。 | ESSceneObject |
| `flyIn(duration: number = 1)` | duration: number = 1 | - | 触发飞入事件<br>**参数**：duration - 飞入持续时间，默认为 1 | ESVisualObject |
| `flyTo(duration: number = 1)` | duration: number = 1 | - | 触发飞向事件<br>**参数**：duration - 飞向持续时间，默认为 1 | ESVisualObject |
| `getBoundSphere(viewer: ESViewer)` | viewer: ESViewer | - | 获取对象的边界球<br>**参数**：viewer - 视图器对象<br>**返回**：包含边界球信息的 Promise | ESVisualObject |
| `getESProperties()` | - | - | 重写获取 ES 属性的方法，返回包含基本信息、数据源、坐标等属性的对象。<br>**返回**：ES 属性对象。 | ES3DTileset |
| `getFeatureTable()` | - | - | 触发获取特征表的事件，并返回一个 Promise，在 2 秒内等待特征表结果，超时返回 undefined。<br>**返回**：包含特征表结果数组或 undefined 的 Promise。 | ES3DTileset |
| `getMaterialNameList()` | - | - | 触发获取材质名称列表的事件，并返回一个 Promise，在 2 秒内等待材质名称列表结果，超时返回 undefined。<br>**返回**：包含材质名称列表数组或 undefined 的 Promise。 | ES3DTileset |
| `getport()` | - | - | - | ESMsTileset |
| `highlightFeature(id: string | number, color?: string)` | id: string \| number, color?: string | - | 触发高亮特征的事件。<br>**参数**：id - 特征 ID。；color - 可选的高亮颜色，参数形式如 `rgba(255,0,0,1)`。 | ES3DTileset |
| `highlightFeatureAndFlyTo(id: string | number, sphere: ESJVector4D, color?: string, duration?: number)` | id: string \| number, sphere: ESJVector4D, color?: string, duration?: number | - | 触发高亮特征并飞行到该特征的事件。<br>**参数**：id - 节点 ID。；sphere - 笛卡尔坐标系 [x, y, z, radius]。；color - 高亮颜色，不传就是默认颜色不高亮，参数形式如 `rgba(255,0,0,1)`。；duration - 飞行时间，默认 1s。 | ES3DTileset |
| `refresh()` | - | - | - | ESMsTileset |
| `refreshTileset()` | - | - | 触发刷新 Tileset 的事件。 | ES3DTileset |
| `registerAttachedObject(createViewerPropSceneObject: (viewer: ESViewer) => Destroyable | undefined)` | createViewerPropSceneObject: (viewer: ESViewer) => Destroyable \| undefined | - | 注册与视口关联的对象，当对象被添加到视口或从视口移除时，会自动创建或销毁关联对象。<br>**参数**：createViewerPropSceneObject - 一个函数，用于创建与视口关联的对象。 | ESSceneObject |
| `registerAttachedObjectForContainer(createContainerPropSceneObject: (viewer: ESViewer, container: HTMLDivElement) => Destroyable | undefined)` | createContainerPropSceneObject: (viewer: ESViewer, container: HTMLDivElement) => Destroyable \| undefined | - | 注册与视口容器关联的对象，当对象被添加到视口或从视口移除时，会自动创建或销毁关联对象。<br>**参数**：createContainerPropSceneObject - 一个函数，用于创建与视口容器关联的对象。 | ESSceneObject |
| `reload()` | - | - | - | ESSceneObject |
| `removefromViewer(viewer: ESViewer)` | viewer: ESViewer | - | 将对象从指定视口中移除。<br>**参数**：viewer - 要移除对象的视口。 | ESSceneObject |
| `resetFeatureStyle(content?: "visable" | "color")` | content?: "visable" \| "color" | - | 触发还原特征样式的事件。 "visable" 还原setFeatureVisable()设置的显隐条件， "color" 还原setFeatureColor()、highlightFeature()、highlightFeatureAndFlyTo()设置的颜色条件， undefined 还原可见性和颜色。<br>**参数**：content - 还原的内容类型，可选值为 "visable"、"color" 或 undefined。 | ES3DTileset |
| `setFeatureColor(featureName: string, json: string | FeatureColorJsonType[], append: boolean = false)` | featureName: string, json: string \| FeatureColorJsonType[], append: boolean = false | - | 基于提供的条件为特定特征属性设置颜色。 如果提供的是字符串，它应该是有效的 JSON 字符串。 如果提供的是数组，它应该是 FeatureColorJsonType 对象的数组。 条件可以基于要素的值、最小值或最大值。 颜色为 0~1 的映射数组，例如 [1, 0, 0, 1] 表示红色。 ```typescript const featureName = "height"; const conditions: FeatureColorJsonType[] = [   { minValue: 100000, color: [1, 0, 0, 1] },    { maxValue: 500000, color: [1, 1, 0, 1] },  ]; setFeatureColor(featureName, conditions); ```<br>**参数**：featureName - 要修改的特征属性的名称。；json - 要素的条件和颜色。；append - 是否追加颜色而不是覆盖，默认为 false。 | ES3DTileset |
| `setFeatureStyle(json: ESJFeatureStyleType, append: boolean = false)` | json: ESJFeatureStyleType, append: boolean = false | - | 根据条件设置特征样式。 [   {     condition: [       {         field: "id",         op: "!=",         value: "ss"       },       {         field: "name",         op: "contain",         value: "杨"       }     ],     color: [1, 0, 0, 1],     show: true   },   {     condition: {       field: "height",       op: "==",       value: 20     },     color: [1, 1, 0, 1],     show: false   } ]<br>**参数**：json - JSON 格式的样式信息，格式如下：；append - 是否追加样式而不是覆盖，默认为 false。 | ES3DTileset |
| `setFeatureVisable(featureName: string, json: string | FeatureVisableJsonType[], append: boolean = false)` | featureName: string, json: string \| FeatureVisableJsonType[], append: boolean = false | - | 根据提供的条件设置要素的可见性。 如果提供的是字符串，它应该是有效的 JSON 字符串。 如果提供的是数组，它应该是 FeatureVisableJsonType 对象的数组。 条件可以基于要素的值、最小值或最大值。 可见性可以设置为 true 或 false。 ```typescript const featureName = "height"; const conditions: FeatureVisableJsonType[] = [   { value: 1000000, visable: false },   { minValue: 5000000, visable: true },   { maxValue: 10000000, visable: false }, ]; setFeatureVisable(featureName, conditions); ```<br>**参数**：featureName - 要修改的属性名称。；json - 要素的条件和可见性。；append - 是否追加条件，默认为 false。 | ES3DTileset |
| `setLight122()` | - | - | 仅 Cesium 引擎生效，设置光照模式为 122。 | ES3DTileset |
| `setMaterial(options: { [xx: string]: ESJMaterialType } | 'default')` | options: { [xx: string]: ESJMaterialType } \| 'default' | - | 设置材质，并返回一个 Promise，等待材质设置完成后的信息。<br>**参数**：options - 材质对象或 'default'。<br>**返回**：包含材质设置完成后信息的 Promise。 | ES3DTileset |
| `strokeFeature(feature: any[], color: ESJColor = [1, 0, 0, 1])` | feature: any[], color: ESJColor = [1, 0, 0, 1] | - | 描边特征，参数为特征数组和可选的描边颜色。<br>**参数**：feature - 特征数组。Cesium.Cesium3DTileFeature[],空数组时代表清空描边高亮；color - 可选的描边颜色。 ESJColor,默认 [1, 0, 0, 1] | ES3DTileset |
| `supportEditingModes()` | - | - | 获取当前对象支持的编辑模式<br>**返回**：支持的编辑模式数组 | ESVisualObject |
| `syncPlatformFromUrl()` | - | - | - | ESMsTileset |
| `updateEditing()` | - | - | 重写更新编辑状态的方法，启动编辑模式。 | ES3DTileset |

## 事件

| 事件 | 说明 | 来源 |
| --- | --- | --- |
| `activeViewerChanged` | - | ESSceneObject |
| `calcFlyInParamEvent` | 获取计算飞入参数事件 | ESVisualObject |
| `calcFlyToParamEvent` | 获取计算飞向参数事件 | ESVisualObject |
| `clippingPlaneIdChanged` | 获取裁剪平面 ID 改变的事件。 | ES3DTileset |
| `clippingPlaneIdsChanged` | 获取裁剪平面 ID 数组改变的事件。 | ES3DTileset |
| `clippingPlanesIdChanged` | 获取裁剪平面 ID 改变的事件。 | ES3DTileset |
| `createdEvent` | 获取对象创建事件。 | ESSceneObject |
| `editingChanged` | 获取编辑状态改变事件 | ESVisualObject |
| `excavateIdChanged` | 获取挖坑 ID 数组改变的事件。 | ES3DTileset |
| `flattenedPlaneEnabledChanged` | 获取扁平化平面是否启用状态改变的事件。 | ES3DTileset |
| `flattenedPlaneIdChanged` | 获取扁平化平面 ID 改变的事件。 | ES3DTileset |
| `flushEvent` | 获取刷新对象事件。 | ESSceneObject |
| `flyInEvent` | 获取飞入事件 | ESVisualObject |
| `flyOverEvent` | 获取飞行结束事件 | ESVisualObject |
| `flyToDistanceChanged` | 获取飞向距离改变事件 | ESVisualObject |
| `flyToEvent` | 获取飞向事件 | ESVisualObject |
| `flyToFlyDurationChanged` | 获取飞向持续时间改变事件 | ESVisualObject |
| `flyToHDeltaChanged` | 获取飞向水平偏移量改变事件 | ESVisualObject |
| `flyToHeadingChanged` | 获取飞向航向改变事件 | ESVisualObject |
| `flyToPDeltaChanged` | 获取飞向垂直偏移量改变事件 | ESVisualObject |
| `flyToPitchChanged` | 获取飞向俯仰角改变事件 | ESVisualObject |
| `getFeatureTableEvent` | 获取获取特征表的事件。 | ES3DTileset |
| `getMaterialNameListEvent` | 获取获取材质名称列表的事件。 | ES3DTileset |
| `highlightFeatureAndFlyToEvent` | 获取高亮特征并飞行到该特征的事件。 | ES3DTileset |
| `highlightFeatureEvent` | 获取高亮特征的事件。 | ES3DTileset |
| `pickedEvent` | 获取拾取事件 | ESVisualObject |
| `platformChanged` | - | ESMsTileset |
| `readyEvent` | - | ESSceneObject |
| `refreshTilesetEvent` | 获取刷新 Tileset 的事件。 | ES3DTileset |
| `reloadEvent` | - | ESSceneObject |
| `resetFeatureStyleEvent` | 获取还原特征样式的事件。 | ES3DTileset |
| `setFeatureColorEvent` | 获取设置特征颜色的事件。 | ES3DTileset |
| `setFeatureStyleEvent` | 获取设置特征样式的事件。 | ES3DTileset |
| `setFeatureVisableEvent` | 获取设置特征可见性的事件。 | ES3DTileset |
| `setMaterialEvent` | 获取设置材质的事件。 | ES3DTileset |
| `strokeFeatureEvent` | 获取描边特征的事件。 | ES3DTileset |
| `~~supportEditChanged~~` | ⚠️已废弃 获取是否支持编辑状态改变的事件。 | ES3DTileset |
| `tilesetServePortChanged` | - | ESMsTileset |
| `toDestroyFuncChanged` | 获取销毁函数改变事件。 | ESSceneObject |
| `updateFuncChanged` | 获取更新函数改变事件。 | ESSceneObject |

---
> 本文由 `generate-docs.mjs` 从源码自动生成，请勿手改。修改对象属性/方法后重跑脚本刷新。
