# ESObjectsManager（场景对象管理器（入口））

> 类型：管理器/基础设施类 | 继承链：`Destroyable -> ESObjectsManager`

earthsdk3 的入口管理器（简称 objm）。聚合场景对象管理、视口管理、场景树、相机视角集合、播放器、路径动画等子系统。开发者通过它创建对象、创建/切换视口、序列化项目。

## 属性

| 属性 | 类型 | 默认值 | 说明 | 来源 |
| --- | --- | --- | --- | --- |
| `activeViewer` | - | - | 获取当前活动的视口。 | ESObjectsManager |
| `cameraViewsManager` | - | - | 获取相机视角集合管理器。 | ESObjectsManager |
| `completeJson` | - | - | 获取对象的 JSON 表示，包含所有属性。包括默认值 | ESObjectsManager |
| `dragstartDataMananger` | - | - | 获取拖动开始数据管理器。 | ESObjectsManager |
| `envs` | - | - | 获取所有环境变量的静态属性。 | ESObjectsManager |
| `esPlyarAndPathTime` | - | - | 获取播放器和路径时间管理器。 | ESObjectsManager |
| `json` | - | - | 获取 ESObjectsManager 的 JSON 表示。 | ESObjectsManager |
| `pathAnimationManager` | - | - | 路径动画管理器 1.channels : { pathId: string, sceneObjectIds: string[] }[]； 2.player : ESPlayer； 3.指定的id的sceneObject必须拥有position和rotation属性,path类型为 ESPath； | ESObjectsManager |
| `player` | - | - | 获取播放器。 | ESObjectsManager |
| `sceneObjectEditingManager` | - | - | 获取场景对象编辑管理器。 | ESObjectsManager |
| `sceneObjectsManager` | - | - | 获取场景对象管理器。 | ESObjectsManager |
| `sceneTree` | - | - | 获取默认场景树。 | ESObjectsManager |
| `syncOtherViewersToActived` | - | - | 获取是否将其他视口同步到活动视口的状态。 | ESObjectsManager |
| `viewers` | - | - | 获取所有视口。 | ESObjectsManager |

## 方法

| 方法 | 参数 | 返回 | 说明 | 来源 |
| --- | --- | --- | --- | --- |
| `createCesiumViewer(...args: any[])` | ...args: any[] | - | - | ESObjectsManager |
| `createOpenLayersViewer(...args: any[])` | ...args: any[] | - | - | ESObjectsManager |
| `createSceneObject(sceneObjectType: string | (new (id?: string) => T), id?: string)` | sceneObjectType: string \| (new (id?: string) => T), id?: string | - | 创建场景对象。<br>**参数**：sceneObjectType - 场景对象类型，可以是字符串或构造函数。；id - 场景对象的 ID，可选。<br>**返回**：创建的场景对象。 | ESObjectsManager |
| `createSceneObjectFromClass(sceneObjConstructor: new (id?: string) => T, id?: string)` | sceneObjConstructor: new (id?: string) => T, id?: string | - | 根据类构造函数创建场景对象。<br>**参数**：sceneObjConstructor - 场景对象的构造函数。；id - 场景对象的 ID，可选。<br>**返回**：创建的场景对象。 | ESObjectsManager |
| `createSceneObjectFromJson(sceneObjectJson: JsonValue & { type: string;[k: string]: any; })` | sceneObjectJson: JsonValue & { type: string;[k: string]: any; } | - | 根据 JSON 数据创建场景对象。<br>**参数**：sceneObjectJson - 包含场景对象类型和其他属性的 JSON 数据。<br>**返回**：创建的场景对象，如果解析失败则返回 undefined。 | ESObjectsManager |
| `createSceneObjectFromUrl(url: string, id?: string)` | url: string, id?: string | - | 根据 URL 创建场景对象。<br>**参数**：url - 场景对象的 URL。；id - 场景对象的 ID，可选。<br>**返回**：创建的场景对象。 | ESObjectsManager |
| `createSceneTree(id: string, itemDivHeight: number = 24)` | id: string, itemDivHeight: number = 24 | - | 创建新的场景树。<br>**参数**：id - 场景树的 ID。；itemDivHeight - 场景树项的高度，默认为 24。<br>**返回**：创建的场景树，如果 ID 已存在则返回已有的场景树。 | ESObjectsManager |
| `createUeViewer(...args: any[])` | ...args: any[] | - | - | ESObjectsManager |
| `createViewer(option: ESVOption)` | option: ESVOption | - | 创建新的视口。<br>**参数**：option - 视口创建选项。<br>**返回**：创建的视口。 | ESObjectsManager |
| `destroyAllSceneObjects()` | - | - | 销毁所有场景对象，但跳过内置对象（如视角集合和内置播放器）。 | ESObjectsManager |
| `destroySceneObject(sceneObject: T)` | sceneObject: T | - | 销毁指定的场景对象。<br>**参数**：sceneObject - 要销毁的场景对象。<br>**返回**：销毁操作的结果。 | ESObjectsManager |
| `destroyViewer(viewer: T)` | viewer: T | - | 销毁指定的视口。<br>**参数**：viewer - 要销毁的视口。<br>**返回**：销毁操作的结果。 | ESObjectsManager |
| `getBrowserEnv()` | - | - | 获取当前浏览器环境:UE大屏(ESWebView)/浏览器(Browser)<br>**返回**：当前浏览器环境。 | ESObjectsManager |
| `getSceneObject(option?: string)` | option?: string | - | 获取场景对象。<br>**参数**：option - 可以是对象 ID 或者对象类型，为空则返回所有对象。<br>**返回**：单个场景对象、场景对象数组或undefined。 | ESObjectsManager |
| `getSceneObjectById(id: string)` | id: string | - | 根据对象 ID 获取场景对象。<br>**参数**：id - 对象的 ID。<br>**返回**：对应的场景对象或者undefined。 | ESObjectsManager |
| `getSceneTree(id: string = 'default')` | id: string = 'default' | - | 根据 ID 获取场景树。<br>**参数**：id - 场景树的 ID，默认为 'default'。<br>**返回**：对应的场景树，如果不存在则返回 undefined。 | ESObjectsManager |
| `getSceneTrees()` | - | - | 获取所有场景树。<br>**返回**：场景树数组。 | ESObjectsManager |
| `getViewers()` | - | - | 获取所有视口的方法。<br>**返回**：视口数组。 | ESObjectsManager |
| `switchToCesiumViewer(...args: any[])` | ...args: any[] | - | - | ESObjectsManager |
| `switchToOpenLayersViewer(...args: any[])` | ...args: any[] | - | - | ESObjectsManager |
| `switchToUEViewer(...args: any[])` | ...args: any[] | - | - | ESObjectsManager |
| `switchViewer(option: ESVOption, viewSync: boolean = true, attributeSync: boolean = true, destroy: boolean = true)` | option: ESVOption, viewSync: boolean = true, attributeSync: boolean = true, destroy: boolean = true | - | 切换视口。<br>**参数**：option - 视口切换选项。；viewSync - 是否同步视角，默认为 true。；attributeSync - 是否同步属性，默认为 true。；destroy - 是否销毁当前活动视口，默认为 true。<br>**返回**：切换后的视口。 | ESObjectsManager |

## 事件

| 事件 | 说明 | 来源 |
| --- | --- | --- |
| `activeViewerChanged` | 获取活动视口改变事件。 | ESObjectsManager |
| `jsonLoadingEvent` | 获取 JSON 加载事件。 | ESObjectsManager |
| `syncOtherViewersToActivedChanged` | 获取同步状态改变事件。 | ESObjectsManager |
| `viewerCreatedEvent` | 获取视口创建事件。 | ESObjectsManager |

---
> 本文由 `generate-docs.mjs` 从源码自动生成，请勿手改。
