EarthSDK
    正在准备搜索索引...

    类 ESCameraViewCollection

    ESCameraViewCollection 类用于管理和控制一组相机视角。它继承自 ESSceneObject 类,提供了一系列方法来添加、删除、更新和切换相机视角。

    核心功能包括:

    • 管理一组相机视角(添加、删除、更新视角信息)
    • 切换当前视角
    • 飞行到指定视角
    • 播放视角序列
    • 停止播放
    • 获取和设置视角集合的 JSON 表示

    使用示例: https://www.wolai.com/earthsdk/eV1jsaXWLWjaetTVCeSvww https://c0yh9tnn0na.feishu.cn/wiki/VYnPwLAY4iUVQfkAuXWcuFKDnmh 构造函数参数:

    • id:对象的 ID,可选。

    特殊使用限制或潜在的副作用:

    • 在设置视角信息时,如果视角信息数组与当前视角包装器数组长度相同且内容相同,则不会触发更新。
    • 在删除视角时,如果索引超出范围,会打印警告信息。
    • 在飞行到视角时,如果当前视角包装器为空,会抛出错误。

    默认属性:

    • loop:是否循环播放视角序列,默认为 true。
    • playing:是否正在播放视角序列,默认为 false。
    • intervalTime:视角之间的间隔时间(秒),默认为 5。
    • duration:视角的飞行时间(秒),默认为 1。
    • views:视角信息数组,默认为空数组。
    • flyMode:飞行模式,默认为 'default',可选值 [['默认', 'default'], ['直线飞行', 'uniform']]。

    层级 (查看层级一览)

    索引

    构造函数

    属性

    访问器

    方法

    构造函数

    属性

    devTags: undefined | string[] = ...

    对象类型名称相关的开发标签数组,使用 reactArrayWithUndefined 进行响应式处理,默认为 undefined。

    devTagsChanged: Listener<[undefined | string[], undefined | string[]]>
    devTagsReact: ReactiveVariable<undefined | string[]>
    execOnceFuncStr: undefined | string = ...

    一次性执行函数的字符串表示,默认为 undefined。

    execOnceFuncStrChanged: Listener<[undefined | string, undefined | string]>
    execOnceFuncStrReact: ReactiveVariable<string> | ReactiveVariable<undefined>
    extras: JsonValue = ...

    扩展属性 JSON,必须整体赋值,使用 reactJson 进行响应式处理,默认为 undefined。

    extrasChanged: Listener<[JsonValue, JsonValue]>
    flyMode: "default" | "uniform" = ...

    飞行模式 默认为相机飞行,uniform为两点直线飞行

    flyModeChanged: Listener<["default" | "uniform", "default" | "uniform"]>
    flyModeReact: ReactiveVariable<"default"> | ReactiveVariable<"uniform">
    intervalTime: number = 5

    间隔时间

    intervalTimeChanged: Listener<[number, number]>
    intervalTimeReact: ReactiveVariable<number>
    loop: boolean = true

    是否循环

    loopChanged: Listener<[boolean, boolean]>
    loopReact: ReactiveVariable<false> | ReactiveVariable<true>
    name: string = '未命名场景对象'

    对象名称,默认为 '未命名场景对象'。

    nameChanged: Listener<[string, string]>
    nameReact: ReactiveVariable<string>
    playing: boolean = false

    开始播放

    playingChanged: Listener<[boolean, boolean]>
    playingReact: ReactiveVariable<false> | ReactiveVariable<true>
    ref: undefined | string = ...

    对象引用,设置后可通过对象管理器 objm.$refs.xxx 快速获取到对象,默认为 undefined。

    refChanged: Listener<[undefined | string, undefined | string]>
    refReact: ReactiveVariable<string> | ReactiveVariable<undefined>
    toDestroyFuncStr: undefined | string = ...

    销毁函数的字符串表示,默认为 undefined。

    toDestroyFuncStrChanged: Listener<[undefined | string, undefined | string]>
    toDestroyFuncStrReact: ReactiveVariable<string> | ReactiveVariable<undefined>
    updateFuncStr: undefined | string = ...

    更新函数的字符串表示,默认为 undefined。

    updateFuncStrChanged: Listener<[undefined | string, undefined | string]>
    updateFuncStrReact: ReactiveVariable<string> | ReactiveVariable<undefined>
    _lastMemId: number = -1
    context: ESObjectsContext = ...

    对象上下文,用于管理场景对象的创建、销毁、查找等操作。

    create: <T extends ESSceneObject>(
        sceneObjectType: string | (new (id?: string) => T),
        id?: string,
    ) => undefined | T = ...

    创建场景对象的方法。

    类型声明

      • <T extends ESSceneObject>(
            sceneObjectType: string | (new (id?: string) => T),
            id?: string,
        ): undefined | T
      • 根据场景对象类型名或构造函数创建场景对象实例

        类型参数

        参数

        • sceneObjectType: string | (new (id?: string) => T)

          场景对象类型名或构造函数

        • 可选id: string

          可选的场景对象ID

        返回 undefined | T

        创建的场景对象实例,如果未找到对应的构造函数则返回 undefined

    createFromClass: <T extends ESSceneObject>(
        sceneObjConstructor: new (id?: string) => T,
        id?: string,
    ) => T = ...

    根据类创建场景对象的方法。

    类型声明

      • <T extends ESSceneObject>(
            sceneObjConstructor: new (id?: string) => T,
            id?: string,
        ): T
      • 根据场景对象的构造函数创建场景对象实例

        类型参数

        参数

        • sceneObjConstructor: new (id?: string) => T

          场景对象的构造函数

        • 可选id: string

          可选的场景对象ID,如果未提供或已存在相同ID的对象,将自动生成新的ID

        返回 T

        创建的场景对象实例

    createFromJson: <T extends ESSceneObject>(
        sceneObjectJson: JsonValue & { type: string; [k: string]: any },
    ) => undefined | T = ...

    根据 JSON 数据创建场景对象的方法。

    类型声明

      • <T extends ESSceneObject>(
            sceneObjectJson: JsonValue & { type: string; [k: string]: any },
        ): undefined | T
      • 根据 JSON 对象创建场景对象实例,并将 JSON 数据赋值给场景对象

        类型参数

        参数

        • sceneObjectJson: JsonValue & { type: string; [k: string]: any }

          包含场景对象类型和其他属性的 JSON 对象

        返回 undefined | T

        创建的场景对象实例,如果未找到对应的构造函数则返回 undefined

    createFromUrl: (url: string, id?: string) => undefined | ESSceneObject = ...

    根据 URL 创建场景对象的方法。

    defaults: Record<string, any> = {}
    destroySceneObject: (sceneObject: ESSceneObject) => boolean = ...

    销毁场景对象的方法。

    类型声明

      • (sceneObject: ESSceneObject): boolean
      • 销毁指定的场景对象实例

        参数

        返回 boolean

        场景对象是否已被销毁

    getEnv: (varName: string) => undefined | string = ...

    获取环境变量的方法。

    类型声明

      • (varName: string): undefined | string
      • 获取环境变量

        参数

        • varName: string

          环境变量名

        返回 undefined | string

        环境变量值

    环境变量的键。

    对应的环境变量值,如果未找到则返回 undefined。

    getSceneObj: (option?: string) => undefined | ESSceneObject | ESSceneObject[] = ...

    根据对象 ID 获取场景对象的方法。

    类型声明

      • (option?: string): undefined | ESSceneObject | ESSceneObject[]
      • 根据不同的条件获取场景对象实例

        参数

        • 可选option: string

          可选的条件,如果未提供则返回所有场景对象;如果以 'ES' 开头,则返回指定类型的所有场景对象;否则返回指定ID的场景对象

        返回 undefined | ESSceneObject | ESSceneObject[]

        符合条件的场景对象实例数组或单个实例,如果未找到则返回 undefined

    对象的唯一标识符。

    对应的场景对象,如果未找到则返回 undefined。

    getSceneObjById: (id: string) => undefined | ESSceneObject = ...

    根据对象 ID 获取场景对象的方法。

    类型声明

      • (id: string): undefined | ESSceneObject
      • 根据场景对象的ID获取场景对象实例

        参数

        • id: string

          场景对象的ID

        返回 undefined | ESSceneObject

        对应的场景对象实例,如果未找到则返回 undefined

    对象的唯一标识符。

    对应的场景对象,如果未找到则返回 undefined。

    getSceneObject: (option?: string) => undefined | ESSceneObject | ESSceneObject[] = ...

    根据对象 ID 获取场景对象的方法。

    类型声明

      • (option?: string): undefined | ESSceneObject | ESSceneObject[]
      • 根据不同的条件获取场景对象实例

        参数

        • 可选option: string

          可选的条件,如果未提供则返回所有场景对象;如果以 'ES' 开头,则返回指定类型的所有场景对象;否则返回指定ID的场景对象

        返回 undefined | ESSceneObject | ESSceneObject[]

        符合条件的场景对象实例数组或单个实例,如果未找到则返回 undefined

    对象的唯一标识符。

    对应的场景对象,如果未找到则返回 undefined。

    getSceneObjectById: (id: string) => undefined | ESSceneObject = ...

    根据对象 ID 获取场景对象的方法。

    类型声明

      • (id: string): undefined | ESSceneObject
      • 根据场景对象的ID获取场景对象实例

        参数

        • id: string

          场景对象的ID

        返回 undefined | ESSceneObject

        对应的场景对象实例,如果未找到则返回 undefined

    对象的唯一标识符。

    对应的场景对象,如果未找到则返回 undefined。

    getStrFromEnv: (str: string) => string = ...

    从环境变量中获取字符串值的方法。

    类型声明

      • (str: string): string
      • 根据含有环境变量的字符串获取真实路径

        参数

        • str: string

          包含环境变量的字符串,环境变量格式为 ${xxx-xxx}

        返回 string

        替换环境变量后的真实路径字符串

    环境变量的键。

    对应的字符串值,如果未找到则返回 undefined。

    innerRegister: <T extends ESSceneObject>(
        sceneObjectType: string,
        sceneObjConstructor: new () => T,
        extraInfo?: { [k: string]: any },
    ) => string = ...

    注册对象到上下文的方法。

    类型声明

      • <T extends ESSceneObject>(
            sceneObjectType: string,
            sceneObjConstructor: new () => T,
            extraInfo?: { [k: string]: any },
        ): string
      • 注册场景对象类型及其构造函数

        类型参数

        参数

        • sceneObjectType: string

          场景对象类型名

        • sceneObjConstructor: new () => T

          场景对象的构造函数

        • 可选extraInfo: { [k: string]: any }

          可选的额外信息,将存储在构造函数的扩展属性中

        返回 string

        注册的场景对象类型名

    setEnv: (varName: string, value: undefined | string) => void = ...

    设置环境变量的方法。

    类型声明

      • (varName: string, value: undefined | string): void
      • 设置环境变量

        参数

        • varName: string

          环境变量名

        • value: undefined | string

          环境变量值

        返回 void

    环境变量的键。

    环境变量的值。

    type: string = ...

    静态属性,用于注册该类的类型信息,包含中文名称、标签和描述。

    访问器

    • get _jsonStr(): string

      获取对象的 JSON 字符串表示。

      返回 string

    • set _jsonStr(value: string): void

      根据 JSON 字符串设置对象的属性。

      参数

      • value: string

        JSON 字符串。

      返回 void

    • get activeViewer(): undefined | ESViewer

      返回 undefined | ESViewer

    • set activeViewer(value: undefined | ESViewer): void

      参数

      返回 void

    • get activeViewerChanged(): Listener<
          [undefined | ESViewer, undefined | ESViewer],
      >

      返回 Listener<[undefined | ESViewer, undefined | ESViewer]>

    • get attachedViewers(): Set<ESViewer>

      获取对象当前存在于哪些视口上的集合。

      返回 Set<ESViewer>

    • get completeJson(): JsonValue

      获取对象的 JSON 表示,包含所有属性。包括默认值

      返回 JsonValue

    • get container(): undefined | HTMLDivElement

      获取容器元素。

      返回 undefined | HTMLDivElement

      容器元素。

    • set container(value: undefined | HTMLDivElement): void

      设置容器元素。

      参数

      • value: undefined | HTMLDivElement

        要设置的容器元素。

      返回 void

    • get containerChanged(): Listener<
          [undefined | HTMLDivElement, undefined | HTMLDivElement],
      >

      获取容器元素变化的可观察对象。

      返回 Listener<[undefined | HTMLDivElement, undefined | HTMLDivElement]>

      容器元素变化的可观察对象。

    • get createdEvent(): Event<[]>

      获取对象创建事件。

      返回 Event<[]>

    • get currentViewIndex(): number

      获取当前视角的索引。

      返回 number

      当前视角的索引。

    • get currentViewIndexChanged(): Listener<[number, number]>

      获取当前视角索引变化的可观察对象。

      返回 Listener<[number, number]>

      当前视角索引变化的可观察对象。

    • get defaultProps(): {
          devTags: ReactiveVariable<undefined | string[]>;
          execOnceFuncStr: undefined | string;
          extras: ReactiveVariable<JsonValue>;
          name: string;
          ref: undefined | string;
          toDestroyFuncStr: undefined | string;
          updateFuncStr: undefined | string;
      }

      获取对象的默认属性。

      返回 {
          devTags: ReactiveVariable<undefined | string[]>;
          execOnceFuncStr: undefined | string;
          extras: ReactiveVariable<JsonValue>;
          name: string;
          ref: undefined | string;
          toDestroyFuncStr: undefined | string;
          updateFuncStr: undefined | string;
      }

      • devTags: ReactiveVariable<undefined | string[]>

        对象类型名称相关的开发标签数组,使用 reactArrayWithUndefined 进行响应式处理,默认为 undefined。

      • execOnceFuncStr: undefined | string

        一次性执行函数的字符串表示,默认为 undefined。

      • extras: ReactiveVariable<JsonValue>

        扩展属性 JSON,必须整体赋值,使用 reactJson 进行响应式处理,默认为 undefined。

      • name: string

        对象名称,默认为 '未命名场景对象'。

      • ref: undefined | string

        对象引用,设置后可通过对象管理器 objm.$refs.xxx 快速获取到对象,默认为 undefined。

      • toDestroyFuncStr: undefined | string

        销毁函数的字符串表示,默认为 undefined。

      • updateFuncStr: undefined | string

        更新函数的字符串表示,默认为 undefined。

    • get disposers(): (() => void)[]

      返回 (() => void)[]

    • get flushEvent(): Event<[]>

      获取刷新对象事件。

      返回 Event<[]>

    • get id(): string

      获取对象的唯一标识符。

      返回 string

    • get json(): Record<string, any>

      重写方法,获取对象的 JSON 表示。

      返回 Record<string, any>

      包含视图信息的 JSON 对象。

    • set json(value: Record<string, any>): void

      重写方法,设置对象的 JSON 表示。

      参数

      • value: Record<string, any>

        要设置的 JSON 对象。

      返回 void

    • get memId(): number

      返回 number

    • get parentID(): string

      获取当前对象指定父级对象,未指定返回自身。

      返回 string

    • set parentID(value: undefined | string): void

      参数

      • value: undefined | string

      返回 void

    • get toDestroyEvent(): Listener

      返回 Listener

    • get toDestroyFunc(): undefined | ((sceneObject: ESSceneObject) => void)

      获取对象的销毁函数。

      返回 undefined | ((sceneObject: ESSceneObject) => void)

    • set toDestroyFunc(
          value: undefined | ((sceneObject: ESSceneObject) => void),
      ): void

      设置对象的销毁函数。

      参数

      • value: undefined | ((sceneObject: ESSceneObject) => void)

        销毁函数。

      返回 void

    • get toDestroyFuncChanged(): Listener<
          [
              undefined
              | ((sceneObject: ESSceneObject) => void),
              undefined | ((sceneObject: ESSceneObject) => void),
          ],
      >

      获取销毁函数改变事件。

      返回 Listener<
          [
              undefined
              | ((sceneObject: ESSceneObject) => void),
              undefined | ((sceneObject: ESSceneObject) => void),
          ],
      >

    • get typeName(): string

      获取对象的类型名称,由子类实现。

      返回 string

    • get updateFunc(): | undefined
      | ((sceneObject: ESSceneObject, timeStamp: number) => void)

      获取对象的更新函数。

      返回 undefined | ((sceneObject: ESSceneObject, timeStamp: number) => void)

    • set updateFunc(
          value:
              | undefined
              | ((sceneObject: ESSceneObject, timeStamp: number) => void),
      ): void

      设置对象的更新函数。

      参数

      • value: undefined | ((sceneObject: ESSceneObject, timeStamp: number) => void)

        更新函数。

      返回 void

    • get updateFuncChanged(): Listener<
          [
              undefined
              | ((sceneObject: ESSceneObject, timeStamp: number) => void),
              undefined | ((sceneObject: ESSceneObject, timeStamp: number) => void),
          ],
      >

      获取更新函数改变事件。

      返回 Listener<
          [
              undefined
              | ((sceneObject: ESSceneObject, timeStamp: number) => void),
              undefined | ((sceneObject: ESSceneObject, timeStamp: number) => void),
          ],
      >

    • get viewerAttached(): Event<[ESViewer]>

      获取对象创建在视口上的事件。

      返回 Event<[ESViewer]>

    • get viewerDetached(): Event<[ESViewer]>

      获取对象从视口移除的事件。

      返回 Event<[ESViewer]>

    • get views(): ESJViewInfo[]

      获取所有视角的信息。

      返回 ESJViewInfo[]

      视角信息数组。

    • set views(value: ESJViewInfo[]): void

      设置视图信息。

      参数

      返回 void

    • get viewsChanged(): Event<[target: ObservableArray<ViewWrapper>]>

      获取视图信息变化的事件。

      返回 Event<[target: ObservableArray<ViewWrapper>]>

      视图信息变化的事件。

    • get $refs(): { [k: string]: undefined | ESSceneObject }

      获取所有引用对象的集合。

      返回 { [k: string]: undefined | ESSceneObject }

    • get envs(): { [k: string]: undefined | string }

      获取所有环境变量的集合。

      返回 { [k: string]: undefined | string }

    方法

    • 参数

      • disposeFunc: () => void

      返回 () => void

    • 类型参数

      • T extends { destroy(): void }

      参数

      • obj: T

      返回 T

    • 添加视角。

      参数

      • name: string = ...

        视角名称,默认为 视角${views.length+ 1}

      • size: [number, number] = ...

        截图尺寸,默认为[64, 64]。

      返回 void

    • 将对象添加到指定视口中。

      参数

      • viewer: ESViewer

        要添加对象的视口。

      返回 void

    • 添加视角。

      返回 void

    • 参数

      • disposeFunc: () => void

      返回 () => void

    • 类型参数

      • T extends { destroy(): void }

      参数

      • obj: T

      返回 T

    • 删除所有视角。

      返回 void

    • 创建与视口关联的对象,并返回一个销毁函数,用于手动销毁关联对象。

      参数

      • createViewerPropSceneObject: (viewer: ESViewer) => undefined | Destroyable

        一个函数,用于创建与视口关联的对象。

      返回 () => void

      一个销毁函数,调用该函数可以销毁所有关联对象。

    • 参数

      • disposeFunc: () => void

      返回 () => void

    • 删除当前视角。

      返回 void

    • 删除指定视角。

      参数

      • index: number

        要删除视角的索引。

      返回 void

    • 返回 undefined

    • 请不要重写destroy,请使用destroyImp来重写!

      返回 undefined

    • 返回 void

    • 参数

      • disposeFunc: () => void

      返回 () => void

    • 类型参数

      • T extends { destroy(): void }

      参数

      • obj: T

      返回 T

    • 类型参数

      • T extends { destroy(): void }

      参数

      • obj: T

      返回 T

    • 触发视图包装器变化的事件。

      返回 void

    • 刷新对象,触发刷新事件。

      返回 void

    • 飞入下一个视角。

      返回 boolean

      飞入是否成功。

    • 飞入上一个视角。

      返回 boolean

      飞入是否成功。

    • 飞入指定视角。

      参数

      • index: number

        要飞入的视角索引。

      返回 void

    • 获取对象的属性列表,用于展示和编辑对象的属性。

      参数

      • 可选language: string

        语言代码,可选参数,用于国际化。

      返回 Property[]

      属性列表。

    • 返回 void

    • 插入视角。

      参数

      • index: number

        当前视角的索引。

      返回 void

    • 返回 boolean

    • 返回 boolean

    • 将当前视角移动到下一个位置。

      返回 void

    • 将当前视角移动到上一个位置。

      返回 void

    • 注册与视口关联的对象,当对象被添加到视口或从视口移除时,会自动创建或销毁关联对象。

      参数

      • createViewerPropSceneObject: (viewer: ESViewer) => undefined | Destroyable

        一个函数,用于创建与视口关联的对象。

      返回 void

    • 注册与视口容器关联的对象,当对象被添加到视口或从视口移除时,会自动创建或销毁关联对象。

      参数

      • createContainerPropSceneObject: (viewer: ESViewer, container: HTMLDivElement) => undefined | Destroyable

        一个函数,用于创建与视口容器关联的对象。

      返回 void

    • 将对象从指定视口中移除。

      参数

      • viewer: ESViewer

        要移除对象的视口。

      返回 void

    • 重置指定位置的视角。

      参数

      • index: number

        当前视角的索引。

      返回 void

    • 重置指定位置视角的名称。

      参数

      • index: number

        当前视角的索引。

      • value: string

        要设置的视角名称。

      返回 void

    • 设置当前视角。

      参数

      • index: number

        当前视角的索引。

      返回 boolean

      设置是否成功。

    • 停止播放。

      返回 void

    • 类型参数

      • T extends { tryDestroy(): void }

      参数

      • obj: T

      返回 T

    • 转换图片路径。

      参数

      • url: string

        图片路径。

      返回 string

      转换后的图片路径。

    • 返回 undefined

    • 类型参数

      • T extends { tryDestroy(): void }

      参数

      • obj: T

      返回 T

    • 更新指定位置的视角。

      参数

      • index: number

        更新指定位置的视角索引。

      • 可选name: string

        视角名称,可选。

      • size: [number, number] = ...

        截图尺寸,默认为[64, 64]。

      返回 boolean

      更新是否成功。

    • 修改指定位置的视角信息。

      参数

      • index: number

        当前视角的索引。

      • val: ESJViewInfo

        要设置的视角信息。

      返回 boolean

      修改是否成功。

    • 返回 {
          devTags: ReactiveVariable<undefined | string[]>;
          execOnceFuncStr: undefined | string;
          extras: ReactiveVariable<JsonValue>;
          flyMode: "default" | "uniform";
          intervalTime: number;
          loop: boolean;
          name: string;
          playing: boolean;
          ref: undefined | string;
          toDestroyFuncStr: undefined | string;
          updateFuncStr: undefined | string;
      }

      • devTags: ReactiveVariable<undefined | string[]>

        对象类型名称相关的开发标签数组,使用 reactArrayWithUndefined 进行响应式处理,默认为 undefined。

      • execOnceFuncStr: undefined | string

        一次性执行函数的字符串表示,默认为 undefined。

      • extras: ReactiveVariable<JsonValue>

        扩展属性 JSON,必须整体赋值,使用 reactJson 进行响应式处理,默认为 undefined。

      • flyMode: "default" | "uniform"

        飞行模式 默认为相机飞行,uniform为两点直线飞行

      • intervalTime: number

        间隔时间

      • loop: boolean

        是否循环

      • name: string

        对象名称,默认为 '未命名场景对象'。

      • playing: boolean

        开始播放

      • ref: undefined | string

        对象引用,设置后可通过对象管理器 objm.$refs.xxx 快速获取到对象,默认为 undefined。

      • toDestroyFuncStr: undefined | string

        销毁函数的字符串表示,默认为 undefined。

      • updateFuncStr: undefined | string

        更新函数的字符串表示,默认为 undefined。

    • 获取父类的类型,用于创建对象时对象本身没有实现类,则使用父类的实现类,一直向上寻找,直到ESSceneObject的实现类

      类型参数

      返回 T

      父类的类型

    • 完善版注册方法

      类型参数

      参数

      • className: string
      • ctor: T & new (id?: string) => ESSceneObject
      • 可选meta: Partial<{ chsName: string; description: string; tags: string[] }>

      返回 string