# ESKml（ESKml）

> 分类：**辅助/UI对象** | 引擎：Cesium/UE | 基类：否
> 继承链：`Destroyable -> ESSceneObject -> ESKml`

ESKml 是用于在场景中加载和显示 KML/KMZ 数据的对象，支持路径、地标和时空数据。

## JSON 示例

```json
{
            "type": "ESKml",
            "uri": "\${earthsdk3-assets-script-dir}/assets/misc/bikeRide.kml"
        }
```

## 属性

| 属性 | 类型 | 默认值 | 说明 | 来源 |
| --- | --- | --- | --- | --- |
| `allowPicking` | boolean | false | - | ESKml |
| `autoResetClock` | boolean | true | - | ESKml |
| `clampToGround` | boolean | false | - | ESKml |
| `clockEnabled` | boolean | false | - | ESKml |
| `clockRange` | string | "UNBOUNDED" | - | ESKml |
| `clockStep` | string | "SYSTEM_CLOCK_MULTIPLIER" | - | ESKml |
| `currentTime` | - | now as number \| undefined | - | ESKml |
| `data` | string \| undefined | undefined | - | ESKml |
| `devTags` | string[] \| undefined | undefined | 对象类型名称相关的开发标签数组，使用 reactArrayWithUndefined 进行响应式处理，默认为 undefined。 | ESSceneObject |
| `execOnceFuncStr` | string \| undefined | undefined | 一次性执行函数的字符串表示，默认为 undefined。 | ESSceneObject |
| `extras` | JsonValue | undefined | 扩展属性 JSON，必须整体赋值，使用 reactJson 进行响应式处理，默认为 undefined。 | ESSceneObject |
| `loadFuncStr` | string \| undefined | undefined | - | ESKml |
| `multiplier` | number | 1 | - | ESKml |
| `name` | string | "未命名场景对象" | 对象名称，默认为 '未命名场景对象'。 | ESSceneObject |
| `ref` | string \| undefined | undefined | 对象引用，设置后可通过对象管理器 objm.$refs.xxx 快速获取到对象，默认为 undefined。 | ESSceneObject |
| `shouldAnimate` | boolean | false | - | ESKml |
| `show` | boolean | true | - | ESKml |
| `startTime` | - | now as number \| undefined | - | ESKml |
| `stopTime` | - | now + 24 * 60 * 60 * 1000 as number \| undefined | - | ESKml |
| `toDestroyFuncStr` | string \| undefined | undefined | 销毁函数的字符串表示，默认为 undefined。 | ESSceneObject |
| `updateFuncStr` | string \| undefined | undefined | 更新函数的字符串表示，默认为 undefined。 | ESSceneObject |
| `uri` | string \| undefined \| ESJResource | undefined | - | ESKml |

## 方法

| 方法 | 参数 | 返回 | 说明 | 来源 |
| --- | --- | --- | --- | --- |
| `addToViewer(viewer: ESViewer)` | viewer: ESViewer | - | 将对象添加到指定视口中。<br>**参数**：viewer - 要添加对象的视口。 | ESSceneObject |
| `createAttachedObject(createViewerPropSceneObject: (viewer: ESViewer) => Destroyable | undefined)` | createViewerPropSceneObject: (viewer: ESViewer) => Destroyable \| undefined | - | 创建与视口关联的对象，并返回一个销毁函数，用于手动销毁关联对象。<br>**参数**：createViewerPropSceneObject - 一个函数，用于创建与视口关联的对象。<br>**返回**：一个销毁函数，调用该函数可以销毁所有关联对象。 | ESSceneObject |
| `flush()` | - | - | 刷新对象，触发刷新事件。 | ESSceneObject |
| `flyTo(duration?: number)` | duration?: number | - | 飞入到目标位置<br>**参数**：duration - 飞行动画时长（毫秒），可选。 | ESKml |
| `getESProperties()` | - | - | - | ESKml |
| `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 |
| `resetClock()` | - | - | 重置时钟 | ESKml |

## 事件

| 事件 | 说明 | 来源 |
| --- | --- | --- |
| `activeViewerChanged` | - | ESSceneObject |
| `createdEvent` | 获取对象创建事件。 | ESSceneObject |
| `flushEvent` | 获取刷新对象事件。 | ESSceneObject |
| `flyToEvent` | 获取飞入事件监听器 | ESKml |
| `readyEvent` | - | ESSceneObject |
| `reloadEvent` | - | ESSceneObject |
| `resetClockEvent` | 获取重置时钟事件监听器 | ESKml |
| `toDestroyFuncChanged` | 获取销毁函数改变事件。 | ESSceneObject |
| `updateFuncChanged` | 获取更新函数改变事件。 | ESSceneObject |

---
> 本文由 `generate-docs.mjs` 从源码自动生成，请勿手改。修改对象属性/方法后重跑脚本刷新。
