# 数据类型与样式枚举 · `properties/index.ts`

> 由 `generate-docs.mjs` 自动生成。

> 源文件 `properties/index.ts`，含 11 个类型定义，按名称排序。

## EngineObjsMap `[type]`

引擎对象映射，键为字符串，值为接受 ESSceneObject 和 ESViewer 实例并返回 EngineObject 实例的构造函数

```ts
export type EngineObjsMap = Map<string, new (sceneObject: ESSceneObject, viewer: ESViewer) => EngineObject>
```

## ESJLonLatFormat `[enum]`

经纬度格式枚举
@enum {string}
@property {string} DECIMAL_DEGREE - 度格式，dd.ddddd°
@property {string} DEGREES_DECIMAL_MINUTES - 度分格式，dd°mm.mmm'
@property {string} SEXAGESIMAL_DEGREE - 度分秒格式，dd°mm'ss"

```ts
export enum ESJLonLatFormat {
    DECIMAL_DEGREE = 'DECIMAL_DEGREE',
    DEGREES_DECIMAL_MINUTES = 'DEGREES_DECIMAL_MINUTES',
    SEXAGESIMAL_DEGREE = 'SEXAGESIMAL_DEGREE'
}
```

## ESJLonLatFormatType `[type]`

经纬度格式类型
@property {string} DECIMAL_DEGREE - 度格式，dd.ddddd°
@property {string} DEGREES_DECIMAL_MINUTES - 度分格式，dd°mm.mmm'
@property {string} SEXAGESIMAL_DEGREE - 度分秒格式，dd°mm'ss"

```ts
export type ESJLonLatFormatType = 'DECIMAL_DEGREE' | 'DEGREES_DECIMAL_MINUTES' | 'SEXAGESIMAL_DEGREE'
```

## ESJNavigationMode `[type]`

导航模式
@property {string} Map - 地图模式
@property {string} Walk - 步行模式
@property {string} Line - 线路模式
@property {string} UserDefined - 自定义模式
@property {string} RotateGlobe - 旋转地球模式
@property {string} RotatePoint - 旋转点模式
@property {string} Follow - 跟随模式

```ts
export type ESJNavigationMode = "Map" | "Walk" | "Line" | "UserDefined" | "RotateGlobe" | "RotatePoint" | "Follow"
```

## ESJsonObjectType `[type]`

通用的 ES  JSON 对象类型，键为字符串，值为任意类型

```ts
export type ESJsonObjectType = { [key: string]: any }
```

## ESJStatusInfoType `[type]`

基础状态信息
@property {number} fps - 帧率
@property {ESJVector3D} position - 相机位置
@property {ESJVector3D} rotation - 相机姿态
@property {number} length - 比例尺

```ts
export type ESJStatusInfoType = {
    fps: number;
    position: ESJVector3D;
    rotation: ESJVector3D;
    length: number;
}
```

## ESJViewInfo `[type]`

相机视角消息
@property {number | undefined} viewDistance - 视图距离，可选参数
@property {number | undefined} duration - 持续时间，可选参数
@property {ESJVector3D} position - 位置，必填参数
@property {ESJVector3D | undefined} rotation - 旋转，可选参数
@property {string | undefined} thumbnail - 缩略图，可选参数
@property {string | undefined} name - 名称，可选参数

```ts
export type ESJViewInfo = {
    viewDistance?: number | undefined,
    duration?: number | undefined,
    position: ESJVector3D,
    rotation?: ESJVector3D | undefined,
    thumbnail?: string | undefined,
    name?: string | undefined
}
```

## ESJWidgetEventInfo `[type]`

ESJ 小部件事件信息
@property {string} type - 事件类型，可选值为 "leftClick" | "rightClick" | "mouseEnter" | "mouseLeave" | "childMouseLeave" | "childMouseEnter"
@property {object | undefined} add - 附加信息，可选参数
@property {string[] | undefined} add.children - 子元素信息，可选参数
@property {ESJVector2D | undefined} add.mousePos - 鼠标位置信息，可选参数

```ts
export type ESJWidgetEventInfo = {
    type: "leftClick" | "rightClick" | "mouseEnter" | "mouseLeave" | "childMouseLeave" | "childMouseEnter";
    add?: {
        children?: string[];
        mousePos?: ESJVector2D;
    }
}
```

## ESObjectsManagerJsonType `[type]`

对象管理器的 JSON 类型
@property {object} asset - 资产信息
@property {string} asset.type - 资产类型
@property {string} asset.version - 资产版本
@property {string} asset.createdTime - 资产创建时间
@property {string} asset.modifiedTime - 资产修改时间
@property {string} asset.name - 资产名称
@property {JsonValue | undefined} viewers - 查看器信息，可选参数
@property {SceneTreeJsonValue | undefined} sceneTree - 场景树信息，可选参数
@property {ESJViewInfo[] | undefined} viewCollection - 视图集合信息，可选参数
@property {ESJViewInfo | undefined} lastView - 最后一个视图信息，可选参数

```ts
export type ESObjectsManagerJsonType = {
    asset: {
        type: string;
        version: string;
        createdTime: string;
        modifiedTime: string;
        name: string;
    };
    viewers?: JsonValue,
    sceneTree?: SceneTreeJsonValue;
    viewCollection?: ESJViewInfo[];
    lastView?: ESJViewInfo;
}
```

## ESPropertiesType `[type]`

属性类型，UI 上会按照分类展示
@property {string} defaultMenu - 默认菜单栏，可选值为 'basic' | 'general' | 'dataSource' | 'location' | 'coordinate' | 'style' | 'more'
@property {Property[]} basic - 基础属性数组，当前ES对象使用的各引擎公共属性
@property {Property[]} general - 通用属性数组,所有ES对象都包含的公共属性
@property {Property[]} dataSource - 数据源属性数组
@property {Property[]} location - 位置属性数组，单点对象使用
@property {Property[]} coordinate - 坐标属性数组，多点对象使用
@property {Property[]} style - 样式属性数组
@property {Property[]} more - 更多属性数组

```ts
export type ESPropertiesType = {
    defaultMenu: string;
    basic: Property[];
    general: Property[];
    dataSource: Property[];
    location: Property[];
    coordinate: Property[];
    style: Property[];
    more: Property[];
}
```

## ViewerObjsMap `[type]`

查看器对象映射，键为字符串，值为接受 ESVOption 选项并返回 ESViewer 实例的构造函数

```ts
export type ViewerObjsMap = Map<string, new (option: ESVOption) => ESViewer>
```

---
> 本文由 `generate-docs.mjs` 从源码自动生成，请勿手改。
