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

    ESViewer 类是一个抽象类,用于表示和操作视口。它继承自 Destroyable 类,提供了视口的基本功能和管理。

    核心功能包括:

    • 视口的注册和管理
    • 视口容器的设置和获取
    • 视口状态的设置和获取
    • 视口事件的监听和处理
    • 场景对象的管理(添加、删除、查询)
    • 视口的更新和销毁
    • 视口的属性设置和获取
    • 视口的交互管理
    • 视口的同步和编辑功能

    使用方式:

    • 创建视口实例时需要提供视口的选项,包括 ID 和容器。
    • 通过视口实例可以设置和获取视口的容器、状态、属性等。
    • 可以通过视口实例的方法来添加、删除和管理场景对象。
    • 视口实例提供了丰富的事件,可以监听和处理视口的各种交互和变化。

    构造函数参数:

    • option: 视口的参数,包括 ID 和容器等。

    特殊限制或副作用:

    • 视口的 ID 是只读的,一旦设置无法更改。
    • 视口的容器必须是 HTMLDivElement 或其 ID。
    • 视口的某些属性和功能可能需要特定的环境或依赖。

    示例代码:

    层级 (查看层级一览)

    索引

    构造函数

    属性

    atmosphere atmosphereChanged atmosphereReact cameraMovableRegion cameraMovableRegionChanged cameraMovableRegionReact cloud cloudChanged cloudReact currentTime currentTimeChanged currentTimeReact debug debugChanged debugReact depthOfField depthOfFieldChanged depthOfFieldReact depthTestAgainstTerrain depthTestAgainstTerrainChanged depthTestAgainstTerrainReact devTags devTagsChanged devTagsReact editingAuxiliaryPointColor editingAuxiliaryPointColorChanged editingAuxiliaryPointColorReact editingAuxiliaryPointSize editingAuxiliaryPointSizeChanged editingAuxiliaryPointSizeReact editingAxisSize editingAxisSizeChanged editingAxisSizeReact editingEventListening editingEventListeningChanged editingEventListeningReact editingHeightOffset editingHeightOffsetChanged editingHeightOffsetReact editingLineColor editingLineColorChanged editingLineColorReact editingLineShow editingLineShowChanged editingLineShowReact editingLineWidth editingLineWidthChanged editingLineWidthReact editingPointColor editingPointColorChanged editingPointColorReact editingPointSize editingPointSizeChanged editingPointSizeReact execOnceFuncStr execOnceFuncStrChanged execOnceFuncStrReact extras extrasChanged extrasReact flyToBoundingSize flyToBoundingSizeChanged flyToBoundingSizeReact fog fogChanged fogReact fov fovChanged fovReact globeShow globeShowChanged globeShowReact hoverTime hoverTimeChanged hoverTimeReact ionAccessToken ionAccessTokenChanged ionAccessTokenReact lonLatFormat lonLatFormatChanged lonLatFormatReact name nameChanged nameReact opacity opacityChanged opacityReact rain rainChanged rainReact rollerShutter rollerShutterChanged rollerShutterReact show showChanged showReact simulationTime simulationTimeChanged simulationTimeReact snow snowChanged snowReact splitPosition splitPositionChanged splitPositionReact terrainOpacity terrainOpacityChanged terrainOpacityReact terrainShader terrainShaderChanged terrainShaderReact textAvoidance textAvoidanceChanged textAvoidanceReact timeSync timeSyncChanged timeSyncReact toDestroyFuncStr toDestroyFuncStrChanged toDestroyFuncStrReact updateFuncStr updateFuncStrChanged updateFuncStrReact useDefaultStatusDiv useDefaultStatusDivChanged useDefaultStatusDivReact zIndex zIndexChanged zIndexReact _lastMemId context defaults register type

    访问器

    方法

    构造函数

    属性

    atmosphere: boolean = true

    是否显示大气效果,默认值为 true。

    atmosphereChanged: Listener<[boolean, boolean]>
    atmosphereReact: ReactiveVariable<false> | ReactiveVariable<true>
    cameraMovableRegion: undefined | ESJGeoRegion = ...

    相机可移动区域,初始值为 undefined即无限制。

    cameraMovableRegionChanged: Listener<
        [undefined | ESJGeoRegion, undefined | ESJGeoRegion],
    >
    cameraMovableRegionReact: ReactiveVariable<undefined | ESJGeoRegion>
    cloud: number = 0

    云的强度,取值范围为 0~1,默认值为 0。

    cloudChanged: Listener<[number, number]>
    cloudReact: ReactiveVariable<number>
    currentTime: number = ...

    当前时间,用于控制光照,初始值为当前时间戳。

    currentTimeChanged: Listener<[number, number]>
    currentTimeReact: ReactiveVariable<number>
    debug: undefined | boolean = ...

    是否开启调试模式,可选布尔值,初始值为 undefined。

    debugChanged: Listener<[undefined | boolean, undefined | boolean]>
    debugReact:
        | ReactiveVariable<undefined>
        | ReactiveVariable<false>
        | ReactiveVariable<true>
    depthOfField: number = 0

    景深的强度,取值范围为 0~1,默认值为 0。

    depthOfFieldChanged: Listener<[number, number]>
    depthOfFieldReact: ReactiveVariable<number>
    depthTestAgainstTerrain: boolean = true

    地形深度检测,默认值为 true。

    depthTestAgainstTerrainChanged: Listener<[boolean, boolean]>
    depthTestAgainstTerrainReact: ReactiveVariable<false> | ReactiveVariable<true>
    devTags: undefined | string[] = ...

    开发标签数组,使用响应式变量存储,初始值为 undefined。

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

    编辑辅助点的颜色,使用响应式数组存储,可选值,初始值为 undefined。

    editingAuxiliaryPointColorChanged: Listener<
        [undefined | ESJVector4D, undefined | ESJVector4D],
    >
    editingAuxiliaryPointColorReact: ReactiveVariable<undefined | ESJVector4D>
    editingAuxiliaryPointSize: undefined | number = ...

    编辑辅助点的大小,可选值,初始值为 undefined。

    editingAuxiliaryPointSizeChanged: Listener<
        [undefined | number, undefined | number],
    >
    editingAuxiliaryPointSizeReact:
        | ReactiveVariable<number>
        | ReactiveVariable<undefined>
    editingAxisSize: undefined | number = ...

    编辑坐标轴的大小,可选值,初始值为 undefined。

    editingAxisSizeChanged: Listener<[undefined | number, undefined | number]>
    editingAxisSizeReact: ReactiveVariable<number> | ReactiveVariable<undefined>
    editingEventListening: boolean = true

    是否开启编辑事件监听,默认值为 true。

    editingEventListeningChanged: Listener<[boolean, boolean]>
    editingEventListeningReact: ReactiveVariable<false> | ReactiveVariable<true>
    editingHeightOffset: undefined | number = ...

    编辑高度偏移,可选值,默认值为 0。

    editingHeightOffsetChanged: Listener<[undefined | number, undefined | number]>
    editingHeightOffsetReact: ReactiveVariable<number> | ReactiveVariable<undefined>
    editingLineColor: undefined | ESJVector4D = ...

    编辑线的颜色,使用响应式数组存储,可选值,初始值为 undefined。

    editingLineColorChanged: Listener<
        [undefined | ESJVector4D, undefined | ESJVector4D],
    >
    editingLineColorReact: ReactiveVariable<undefined | ESJVector4D>
    editingLineShow: boolean = true

    是否显示编辑线,默认值为 true。

    editingLineShowChanged: Listener<[boolean, boolean]>
    editingLineShowReact: ReactiveVariable<false> | ReactiveVariable<true>
    editingLineWidth: undefined | number = ...

    编辑线的宽度,可选值,初始值为 undefined。

    editingLineWidthChanged: Listener<[undefined | number, undefined | number]>
    editingLineWidthReact: ReactiveVariable<number> | ReactiveVariable<undefined>
    editingPointColor: undefined | ESJVector4D = ...

    编辑点的颜色,使用响应式数组存储,可选值,初始值为 undefined。

    editingPointColorChanged: Listener<
        [undefined | ESJVector4D, undefined | ESJVector4D],
    >
    editingPointColorReact: ReactiveVariable<undefined | ESJVector4D>
    editingPointSize: undefined | number = ...

    编辑点的大小,可选值,初始值为 undefined。

    editingPointSizeChanged: Listener<[undefined | number, undefined | number]>
    editingPointSizeReact: ReactiveVariable<number> | ReactiveVariable<undefined>
    execOnceFuncStr: undefined | string = ...

    一次性执行的函数代码字符串,可选字符串,初始值为 undefined。

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

    额外的 JSON 数据,使用响应式变量存储,初始值为 undefined。

    extrasChanged: Listener<[JsonValue, JsonValue]>
    flyToBoundingSize: undefined | number = ...

    默认飞行定位时对象包围球所占的屏幕像素大小,默认值为 256。

    flyToBoundingSizeChanged: Listener<[undefined | number, undefined | number]>
    flyToBoundingSizeReact: ReactiveVariable<number> | ReactiveVariable<undefined>
    fog: number = 0

    雾的强度,取值范围为 0~1,默认值为 0。

    fogChanged: Listener<[number, number]>
    fogReact: ReactiveVariable<number>
    fov: number = 60

    定义的相机视椎体夹角,默认值为 60。

    fovChanged: Listener<[number, number]>
    fovReact: ReactiveVariable<number>
    globeShow: boolean = true

    是否显示地球,默认值为 true。

    globeShowChanged: Listener<[boolean, boolean]>
    globeShowReact: ReactiveVariable<false> | ReactiveVariable<true>
    hoverTime: number = 2

    鼠标悬停时间,用于触发 hover 事件,单位为秒,默认值为 2。

    hoverTimeChanged: Listener<[number, number]>
    hoverTimeReact: ReactiveVariable<number>
    ionAccessToken: string = ...

    Ion 访问令牌,用于访问相关资源,初始值为空字符串。

    ionAccessTokenChanged: Listener<[string, string]>
    ionAccessTokenReact: ReactiveVariable<string>
    lonLatFormat: ESJLonLatFormatType = ...

    经纬度格式,默认为 'DECIMAL_DEGREE'(十进制度)。

    lonLatFormatReact:
        | ReactiveVariable<"DECIMAL_DEGREE">
        | ReactiveVariable<"DEGREES_DECIMAL_MINUTES">
        | ReactiveVariable<"SEXAGESIMAL_DEGREE">
    name: string = '未命名场景对象'

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

    nameChanged: Listener<[string, string]>
    nameReact: ReactiveVariable<string>
    opacity: undefined | number = ...

    视口的透明度,可选数值,初始值为 undefined。

    opacityChanged: Listener<[undefined | number, undefined | number]>
    opacityReact: ReactiveVariable<number> | ReactiveVariable<undefined>
    rain: number = 0

    雨的强度,取值范围为 0~1,默认值为 0。

    rainChanged: Listener<[number, number]>
    rainReact: ReactiveVariable<number>
    rollerShutter: boolean = false

    是否开启卷帘,默认值为 false。

    rollerShutterChanged: Listener<[boolean, boolean]>
    rollerShutterReact: ReactiveVariable<false> | ReactiveVariable<true>
    show: undefined | boolean = ...

    视口是否可见,可选布尔值,初始值为 undefined。

    showChanged: Listener<[undefined | boolean, undefined | boolean]>
    showReact:
        | ReactiveVariable<undefined>
        | ReactiveVariable<false>
        | ReactiveVariable<true>
    simulationTime: number = ...

    仿真时间,用于控制场景动画,初始值为当前时间戳。

    simulationTimeChanged: Listener<[number, number]>
    simulationTimeReact: ReactiveVariable<number>
    snow: number = 0

    雪的强度,取值范围为 0~1,默认值为 0。

    snowChanged: Listener<[number, number]>
    snowReact: ReactiveVariable<number>
    splitPosition: undefined | number = ...

    切分视口位置

    splitPositionChanged: Listener<[undefined | number, undefined | number]>
    splitPositionReact: ReactiveVariable<undefined | number>
    terrainOpacity: number = 1.0

    地形透明度,默认值为 1.0。

    terrainOpacityChanged: Listener<[number, number]>
    terrainOpacityReact: ReactiveVariable<number>
    terrainShader: {
        aspect: { show: boolean };
        elevationContour: {
            color: ESJVector4D;
            show: boolean;
            spacing: number;
            width: number;
        };
        elevationRamp: {
            color: HTMLCanvasElement
            | ESJColor[];
            maxHeight: number;
            minHeight: number;
            show: boolean;
        };
        slope: { show: boolean };
    } = ESViewer.defaults.terrainShader

    地形着色器配置,初始值为 ESViewer 的默认地形着色器配置。

    terrainShaderChanged: Listener<
        [
            {
                aspect: { show: boolean };
                elevationContour: {
                    color: ESJVector4D;
                    show: boolean;
                    spacing: number;
                    width: number;
                };
                elevationRamp: {
                    color: HTMLCanvasElement
                    | ESJColor[];
                    maxHeight: number;
                    minHeight: number;
                    show: boolean;
                };
                slope: { show: boolean };
            },
            {
                aspect: { show: boolean };
                elevationContour: {
                    color: ESJVector4D;
                    show: boolean;
                    spacing: number;
                    width: number;
                };
                elevationRamp: {
                    color: HTMLCanvasElement
                    | ESJColor[];
                    maxHeight: number;
                    minHeight: number;
                    show: boolean;
                };
                slope: { show: boolean };
            },
        ],
    >
    terrainShaderReact: ReactiveVariable<
        {
            aspect: { show: boolean };
            elevationContour: {
                color: ESJVector4D;
                show: boolean;
                spacing: number;
                width: number;
            };
            elevationRamp: {
                color: HTMLCanvasElement
                | ESJColor[];
                maxHeight: number;
                minHeight: number;
                show: boolean;
            };
            slope: { show: boolean };
        },
    >
    textAvoidance: boolean = false

    是否开启文字避让,默认值为 false。

    textAvoidanceChanged: Listener<[boolean, boolean]>
    textAvoidanceReact: ReactiveVariable<false> | ReactiveVariable<true>
    timeSync: boolean = false

    时间同步开关,false 表示禁用,true 表示启用,用于控制当前时间和仿真时间的同步,默认值为 false。

    timeSyncChanged: Listener<[boolean, boolean]>
    timeSyncReact: ReactiveVariable<false> | ReactiveVariable<true>
    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>
    useDefaultStatusDiv: boolean = true

    是否使用默认的状态面板容器,即状态提示,布尔值,默认为 true。

    useDefaultStatusDivChanged: Listener<[boolean, boolean]>
    useDefaultStatusDivReact: ReactiveVariable<false> | ReactiveVariable<true>
    zIndex: undefined | string = ...

    视口的 z-index,可选字符串,初始值为 undefined。

    zIndexChanged: Listener<[undefined | string, undefined | string]>
    zIndexReact: ReactiveVariable<string> | ReactiveVariable<undefined>
    _lastMemId: number = -1
    context: ViewerContext = ...

    视口的上下文对象。

    defaults: {
        cameraMovableRegion: number[];
        debug: boolean;
        depthTestAgainstTerrain: boolean;
        globeShow: boolean;
        show: boolean;
        splitPosition: number;
        statusInfo: ESJStatusInfoType;
        terrainOpacity: number;
        terrainShader: {
            aspect: { show: boolean };
            elevationContour: {
                color: ESJVector4D;
                show: boolean;
                spacing: number;
                width: number;
            };
            elevationRamp: {
                color: HTMLCanvasElement
                | ESJColor[];
                maxHeight: number;
                minHeight: number;
                show: boolean;
            };
            slope: { show: boolean };
        };
    } = ...

    视口的默认属性。

    类型声明

    • cameraMovableRegion: number[]
    • debug: boolean
    • depthTestAgainstTerrain: boolean
    • globeShow: boolean
    • show: boolean
    • splitPosition: number
    • statusInfo: ESJStatusInfoType
    • terrainOpacity: number
    • terrainShader: {
          aspect: { show: boolean };
          elevationContour: {
              color: ESJVector4D;
              show: boolean;
              spacing: number;
              width: number;
          };
          elevationRamp: {
              color: HTMLCanvasElement
              | ESJColor[];
              maxHeight: number;
              minHeight: number;
              show: boolean;
          };
          slope: { show: boolean };
      }

      elevationRamp 中 color 可以是颜色数组或画布,设置为数组时长度<=7,缺失部分由默认颜色代替 第一个颜色为最低高度的颜色, 最后一个颜色为最高高度的颜色, 中间的颜色为线性插值

    register: <T extends ESViewer>(
        viewerType: string,
        viewerConstructor: new (option: ESVOption) => T,
    ) => string = ...

    注册视口的方法。

    类型声明

      • <T extends ESViewer>(
            viewerType: string,
            viewerConstructor: new (option: ESVOption) => T,
        ): string
      • 注册一个新的 Viewer 类型及其构造函数。 如果该 Viewer 类型已经注册,会在控制台输出警告信息并覆盖原有注册信息。

        类型参数

        参数

        • viewerType: string

          要注册的 Viewer 类型的名称。

        • viewerConstructor: new (option: ESVOption) => T

          用于创建该类型 Viewer 实例的构造函数。

        返回 string

        已注册的 Viewer 类型的名称。

    type: string = ...

    访问器

    • get actived(): boolean

      获取视口是否激活。

      返回 boolean

    • set actived(value: boolean): void

      设置视口是否激活。

      参数

      • value: boolean

        是否激活。

      返回 void

    • get activedChanged(): Listener<[boolean, boolean]>

      获取视口激活状态变化的事件。

      返回 Listener<[boolean, boolean]>

    • get cameraChanged(): Event<[]>

      获取相机变化事件。

      返回 Event<[]>

    • get clickEvent(): Event<
          [{ pointerEvent?: PointerEvent; screenPosition?: ESJVector2D }],
      >

      获取鼠标单击事件。

      返回 Event<[{ pointerEvent?: PointerEvent; screenPosition?: ESJVector2D }]>

      objm.activeViewer.clickEvent.don((e) => {
      const { screenPosition, pointerEvent } = e;
      console.log('屏幕坐标: ',screenPosition);
      console.log(pointerEvent);
      })
    • get completeJson(): JsonValue

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

      返回 JsonValue

    • get container(): undefined | HTMLDivElement

      获取视口的容器。

      返回 undefined | HTMLDivElement

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

      设置视口的容器。

      参数

      • value: undefined | HTMLDivElement

        容器元素或 undefined。

      返回 void

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

      获取容器变化的事件。

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

    • set containerOrId(value: string | HTMLDivElement): void

      设置视口的容器或容器 ID。

      参数

      • value: string | HTMLDivElement

        容器元素或容器 ID。

      返回 void

    • get containerSize(): undefined | ESJVector2D

      获取视口容器的大小。

      返回 undefined | ESJVector2D

    • set containerSize(value: undefined | ESJVector2D): void

      设置视口容器的大小。

      参数

      • value: undefined | ESJVector2D

        容器大小或 undefined。

      返回 void

    • get dblclickEvent(): Event<
          [{ pointerEvent?: PointerEvent; screenPosition?: ESJVector2D }],
      >

      获取鼠标双击事件。

      返回 Event<[{ pointerEvent?: PointerEvent; screenPosition?: ESJVector2D }]>

      objm.activeViewer.dblclickEvent.don((e) => {
      const { screenPosition, pointerEvent } = e;
      console.log('屏幕坐标: ',screenPosition);
      console.log(pointerEvent);
      })
    • get defaultProps(): {
          atmosphere: boolean;
          cameraMovableRegion: ReactiveVariable<undefined | ESJGeoRegion>;
          cloud: number;
          currentTime: number;
          debug: undefined | boolean;
          depthOfField: number;
          depthTestAgainstTerrain: boolean;
          devTags: ReactiveVariable<undefined | string[]>;
          editingAuxiliaryPointColor: ReactiveVariable<undefined | ESJVector4D>;
          editingAuxiliaryPointSize: undefined | number;
          editingAxisSize: undefined | number;
          editingEventListening: boolean;
          editingHeightOffset: undefined | number;
          editingLineColor: ReactiveVariable<undefined | ESJVector4D>;
          editingLineShow: boolean;
          editingLineWidth: undefined | number;
          editingPointColor: ReactiveVariable<undefined | ESJVector4D>;
          editingPointSize: undefined | number;
          execOnceFuncStr: undefined | string;
          extras: ReactiveVariable<JsonValue>;
          flyToBoundingSize: undefined | number;
          fog: number;
          fov: number;
          globeShow: boolean;
          hoverTime: number;
          ionAccessToken: string;
          lonLatFormat: ESJLonLatFormatType;
          name: string;
          opacity: undefined | number;
          rain: number;
          rollerShutter: boolean;
          show: undefined | boolean;
          simulationTime: number;
          snow: number;
          splitPosition: ReactiveVariable<undefined | number>;
          terrainOpacity: number;
          terrainShader: {
              aspect: { show: boolean };
              elevationContour: {
                  color: ESJVector4D;
                  show: boolean;
                  spacing: number;
                  width: number;
              };
              elevationRamp: {
                  color: HTMLCanvasElement
                  | ESJColor[];
                  maxHeight: number;
                  minHeight: number;
                  show: boolean;
              };
              slope: { show: boolean };
          };
          textAvoidance: boolean;
          timeSync: boolean;
          toDestroyFuncStr: undefined
          | string;
          updateFuncStr: undefined | string;
          useDefaultStatusDiv: boolean;
          zIndex: undefined | string;
      }

      获取视口的默认属性。

      返回 {
          atmosphere: boolean;
          cameraMovableRegion: ReactiveVariable<undefined | ESJGeoRegion>;
          cloud: number;
          currentTime: number;
          debug: undefined | boolean;
          depthOfField: number;
          depthTestAgainstTerrain: boolean;
          devTags: ReactiveVariable<undefined | string[]>;
          editingAuxiliaryPointColor: ReactiveVariable<undefined | ESJVector4D>;
          editingAuxiliaryPointSize: undefined | number;
          editingAxisSize: undefined | number;
          editingEventListening: boolean;
          editingHeightOffset: undefined | number;
          editingLineColor: ReactiveVariable<undefined | ESJVector4D>;
          editingLineShow: boolean;
          editingLineWidth: undefined | number;
          editingPointColor: ReactiveVariable<undefined | ESJVector4D>;
          editingPointSize: undefined | number;
          execOnceFuncStr: undefined | string;
          extras: ReactiveVariable<JsonValue>;
          flyToBoundingSize: undefined | number;
          fog: number;
          fov: number;
          globeShow: boolean;
          hoverTime: number;
          ionAccessToken: string;
          lonLatFormat: ESJLonLatFormatType;
          name: string;
          opacity: undefined | number;
          rain: number;
          rollerShutter: boolean;
          show: undefined | boolean;
          simulationTime: number;
          snow: number;
          splitPosition: ReactiveVariable<undefined | number>;
          terrainOpacity: number;
          terrainShader: {
              aspect: { show: boolean };
              elevationContour: {
                  color: ESJVector4D;
                  show: boolean;
                  spacing: number;
                  width: number;
              };
              elevationRamp: {
                  color: HTMLCanvasElement
                  | ESJColor[];
                  maxHeight: number;
                  minHeight: number;
                  show: boolean;
              };
              slope: { show: boolean };
          };
          textAvoidance: boolean;
          timeSync: boolean;
          toDestroyFuncStr: undefined
          | string;
          updateFuncStr: undefined | string;
          useDefaultStatusDiv: boolean;
          zIndex: undefined | string;
      }

      • atmosphere: boolean

        是否显示大气效果,默认值为 true。

      • cameraMovableRegion: ReactiveVariable<undefined | ESJGeoRegion>

        相机可移动区域,初始值为 undefined即无限制。

      • cloud: number

        云的强度,取值范围为 0~1,默认值为 0。

      • currentTime: number

        当前时间,用于控制光照,初始值为当前时间戳。

      • debug: undefined | boolean

        是否开启调试模式,可选布尔值,初始值为 undefined。

      • depthOfField: number

        景深的强度,取值范围为 0~1,默认值为 0。

      • depthTestAgainstTerrain: boolean

        地形深度检测,默认值为 true。

      • devTags: ReactiveVariable<undefined | string[]>

        开发标签数组,使用响应式变量存储,初始值为 undefined。

      • editingAuxiliaryPointColor: ReactiveVariable<undefined | ESJVector4D>

        编辑辅助点的颜色,使用响应式数组存储,可选值,初始值为 undefined。

      • editingAuxiliaryPointSize: undefined | number

        编辑辅助点的大小,可选值,初始值为 undefined。

      • editingAxisSize: undefined | number

        编辑坐标轴的大小,可选值,初始值为 undefined。

      • editingEventListening: boolean

        是否开启编辑事件监听,默认值为 true。

      • editingHeightOffset: undefined | number

        编辑高度偏移,可选值,默认值为 0。

      • editingLineColor: ReactiveVariable<undefined | ESJVector4D>

        编辑线的颜色,使用响应式数组存储,可选值,初始值为 undefined。

      • editingLineShow: boolean

        是否显示编辑线,默认值为 true。

      • editingLineWidth: undefined | number

        编辑线的宽度,可选值,初始值为 undefined。

      • editingPointColor: ReactiveVariable<undefined | ESJVector4D>

        编辑点的颜色,使用响应式数组存储,可选值,初始值为 undefined。

      • editingPointSize: undefined | number

        编辑点的大小,可选值,初始值为 undefined。

      • execOnceFuncStr: undefined | string

        一次性执行的函数代码字符串,可选字符串,初始值为 undefined。

      • extras: ReactiveVariable<JsonValue>

        额外的 JSON 数据,使用响应式变量存储,初始值为 undefined。

      • flyToBoundingSize: undefined | number

        默认飞行定位时对象包围球所占的屏幕像素大小,默认值为 256。

      • fog: number

        雾的强度,取值范围为 0~1,默认值为 0。

      • fov: number

        定义的相机视椎体夹角,默认值为 60。

      • globeShow: boolean

        是否显示地球,默认值为 true。

      • hoverTime: number

        鼠标悬停时间,用于触发 hover 事件,单位为秒,默认值为 2。

      • ionAccessToken: string

        Ion 访问令牌,用于访问相关资源,初始值为空字符串。

      • lonLatFormat: ESJLonLatFormatType

        经纬度格式,默认为 'DECIMAL_DEGREE'(十进制度)。

      • name: string

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

      • opacity: undefined | number

        视口的透明度,可选数值,初始值为 undefined。

      • rain: number

        雨的强度,取值范围为 0~1,默认值为 0。

      • rollerShutter: boolean

        是否开启卷帘,默认值为 false。

      • show: undefined | boolean

        视口是否可见,可选布尔值,初始值为 undefined。

      • simulationTime: number

        仿真时间,用于控制场景动画,初始值为当前时间戳。

      • snow: number

        雪的强度,取值范围为 0~1,默认值为 0。

      • splitPosition: ReactiveVariable<undefined | number>

        切分视口位置

      • terrainOpacity: number

        地形透明度,默认值为 1.0。

      • terrainShader: {
            aspect: { show: boolean };
            elevationContour: {
                color: ESJVector4D;
                show: boolean;
                spacing: number;
                width: number;
            };
            elevationRamp: {
                color: HTMLCanvasElement
                | ESJColor[];
                maxHeight: number;
                minHeight: number;
                show: boolean;
            };
            slope: { show: boolean };
        }

        地形着色器配置,初始值为 ESViewer 的默认地形着色器配置。

      • textAvoidance: boolean

        是否开启文字避让,默认值为 false。

      • timeSync: boolean

        时间同步开关,false 表示禁用,true 表示启用,用于控制当前时间和仿真时间的同步,默认值为 false。

      • toDestroyFuncStr: undefined | string

        销毁函数的代码字符串,可选字符串,初始值为 undefined。

      • updateFuncStr: undefined | string

        更新函数的代码字符串,可选字符串,初始值为 undefined。

      • useDefaultStatusDiv: boolean

        是否使用默认的状态面板容器,即状态提示,布尔值,默认为 true。

      • zIndex: undefined | string

        视口的 z-index,可选字符串,初始值为 undefined。

    • get disabledInputStack(): number

      返回 number

    • set disabledInputStack(value: number): void

      参数

      • value: number

      返回 void

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

      返回 Listener<[number, number]>

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

      返回 (() => void)[]

    • get editingEvent(): Event<
          [
              {
                  add?: {
                      cIndex?: number;
                      cMode?: string;
                      error?: string;
                      modes?: string[];
                  };
                  editingID: string;
                  eid?: string;
                  et?: string;
                  objectIDs: string[];
                  type: "changed"
                  | "start"
                  | "end"
                  | "changedFailed";
              },
          ],
      >

      获取编辑事件。

      返回 Event<
          [
              {
                  add?: {
                      cIndex?: number;
                      cMode?: string;
                      error?: string;
                      modes?: string[];
                  };
                  editingID: string;
                  eid?: string;
                  et?: string;
                  objectIDs: string[];
                  type: "changed"
                  | "start"
                  | "end"
                  | "changedFailed";
              },
          ],
      >

    • get esViewerExtensions(): ESViewerExtensions

      ESViewer扩展 能力集合 :统一的鼠标位置信息;屏幕渲染器等

      返回 ESViewerExtensions

    • get hoverEvent(): Event<
          [{ pointerEvent?: PointerEvent; screenPosition: ESJVector2D }],
      >

      鼠标悬停事件 悬停时长可由 hoverTime 属性控制。

      返回 Event<[{ pointerEvent?: PointerEvent; screenPosition: ESJVector2D }]>

      objm.activeViewer.hoverEvent.don((e) => {
      const { screenPosition, pointerEvent } = e;
      console.log('屏幕坐标: ',screenPosition);
      console.log('pointerEvent:',pointerEvent);
      })
    • get id(): string

      获取视口的 ID。

      返回 string

    • set id(value: string): void

      设置视口的 ID,该属性为只读。

      参数

      • value: string

        要设置的 ID。

      返回 void

    • get json(): JsonValue

      获取视口的 JSON 表示。

      返回 JsonValue

    • set json(value: JsonValue): void

      根据 JSON 数据设置视口的属性。

      参数

      返回 void

    • get keyDownEvent(): Event<[KeyboardEvent]>

      获取键盘按下事件。

      返回 Event<[KeyboardEvent]>

      objm.activeViewer.keyDownEvent.don((e) => {
      console.log(`键盘按下:',e.key);
      })
    • get keyUpEvent(): Event<[KeyboardEvent]>

      获取键盘抬起事件。

      返回 Event<[KeyboardEvent]>

      objm.activeViewer.keyUpEvent.don((e) => {
      console.log(`键盘抬起:',e.key);
      })
    • get memId(): number

      返回 number

    • 获取导航模式。

      返回 ESJNavigationMode

    • get notSupportEditingCount(): number

      返回 number

    • set notSupportEditingCount(value: number): void

      参数

      • value: number

      返回 void

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

      返回 Listener<[number, number]>

    • get overlayContainer(): undefined | HTMLDivElement

      获取覆盖层容器。

      返回 undefined | HTMLDivElement

    • get overlayContainerChanged(): Listener<
          [undefined | ViewerContainer, undefined | ViewerContainer],
      >

      获取覆盖层容器变化的事件。

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

    • get pointerDownEvent(): Event<
          [{ pointerEvent?: PointerEvent; screenPosition: ESJVector2D }],
      >

      获取鼠标指针按下事件。

      返回 Event<[{ pointerEvent?: PointerEvent; screenPosition: ESJVector2D }]>

      objm.activeViewer.pointerDownEvent.don((e) => {
      const { screenPosition, pointerEvent } = e;
      console.log('屏幕坐标: ',screenPosition);
      console.log(pointerEvent);
      })
    • get pointerMoveEvent(): Event<
          [{ pointerEvent?: PointerEvent; screenPosition: ESJVector2D }],
      >

      获取鼠标指针移动事件。

      返回 Event<[{ pointerEvent?: PointerEvent; screenPosition: ESJVector2D }]>

      objm.activeViewer.pointerMoveEvent.don((e) => {
      const { screenPosition, pointerEvent } = e;
      console.log('屏幕坐标: ',screenPosition);
      console.log(pointerEvent);
      })
    • get pointerOutEvent(): Event<
          [{ pointerEvent?: PointerEvent; screenPosition: ESJVector2D }],
      >

      获取鼠标指针移出事件。

      返回 Event<[{ pointerEvent?: PointerEvent; screenPosition: ESJVector2D }]>

      objm.activeViewer.pointerOutEvent.don((e) => {
      const { screenPosition, pointerEvent } = e;
      console.log('屏幕坐标: ',screenPosition);
      console.log(pointerEvent);
      })
    • get pointerOverEvent(): Event<
          [{ pointerEvent?: PointerEvent; screenPosition: ESJVector2D }],
      >

      获取鼠标指针进入事件。

      返回 Event<[{ pointerEvent?: PointerEvent; screenPosition: ESJVector2D }]>

      objm.activeViewer.pointerOverEvent.don((e) => {
      const { screenPosition, pointerEvent } = e;
      console.log('屏幕坐标',screenPosition);
      console.log(pointerEvent);
      })
    • get pointerUpEvent(): Event<
          [{ pointerEvent?: PointerEvent; screenPosition: ESJVector2D }],
      >

      获取鼠标指针抬起事件。

      返回 Event<[{ pointerEvent?: PointerEvent; screenPosition: ESJVector2D }]>

      objm.activeViewer.pointerUpEvent.don((e) => {
      const { screenPosition, pointerEvent } = e;
      console.log('屏幕坐标: ',screenPosition);
      console.log(pointerEvent);
      })
    • get sceneObjects(): MapIterator<ESSceneObject>

      获取场景对象的迭代器。

      返回 MapIterator<ESSceneObject>

    • get status(): ViewerStatus

      获取视口的状态。

      返回 ViewerStatus

    • get statusLog(): string

      获取视口的状态日志。

      返回 string

    • get statusLogChanged(): Listener<[string, string]>

      获取视口状态日志变化的事件。

      返回 Listener<[string, string]>

    • get subContainer(): undefined | HTMLDivElement

      获取子容器。

      返回 undefined | HTMLDivElement

    • get subContainerChanged(): Listener<
          [undefined | ViewerContainer, undefined | ViewerContainer],
      >

      获取子容器变化的事件。

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

    • get syncViewer(): undefined | ESViewer

      获取同步的视口。

      返回 undefined | ESViewer

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

      设置同步的视口。

      参数

      • value: undefined | ESViewer

        要同步的视口。

      返回 void

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

      获取同步视口变化的事件。

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

    • get toDestroyEvent(): Listener

      返回 Listener

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

      获取销毁函数。

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

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

      设置销毁函数。

      参数

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

        销毁函数。

      返回 void

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

      获取销毁函数变化的事件。

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

    • get typeName(): string

      获取视口的类型名称。

      返回 string

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

      获取更新函数。

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

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

      设置更新函数。

      参数

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

        更新函数。

      返回 void

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

      获取更新函数变化的事件。

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

    • get useCustomInteraction(): boolean

      获取是否使用自定义交互。

      返回 boolean

    • set useCustomInteraction(value: boolean): void

      设置是否使用自定义交互。

      参数

      • value: boolean

        是否使用自定义交互。

      返回 void

    • get viewer(): undefined | Map

      返回 undefined | Map

    • get viewerChanged(): Event<[innerViewer: any]>

      获取视口变化事件。

      返回 Event<[innerViewer: any]>

    • get wheelEvent(): Event<[WheelEvent]>

      获取滚轮事件。

      返回 Event<[WheelEvent]>

      objm.activeViewer.wheelEvent.don((e) => {
      const { deltaX, deltaY } = e;
      console.log('鼠标滚动:',deltaX,deltaY);
      })

    方法

    • 参数

      • flag: boolean = false

      返回 Promise<undefined>

    • 参数

      • disposeFunc: () => void

      返回 () => void

    • 类型参数

      • T extends { destroy(): void }

      参数

      • obj: T

      返回 T

    • 向视口中添加场景对象。

      类型参数

      参数

      • ...sceneObjects: T[]

        要添加的场景对象数组。

      返回 void

    • 参数

      • disposeFunc: () => void

      返回 () => void

    • 类型参数

      • T extends { destroy(): void }

      参数

      • obj: T

      返回 T

    • 捕获视口的图像。

      参数

      • 可选resx: number

        图像的宽度。

      • 可选resy: number

        图像的高度。

      返回 Promise<undefined | string>

      objm.activeViewer.capture(166,166).then(res=>{
      console.log("缩略图",res)
      })
    • 切换到跟随模式。

      参数

      • objectId: string

        要跟随的对象 ID。

      • 可选distance: number

        距离。

      • 可选heading: number

        航向。

      • 可选pitch: number

        俯仰角。

      返回 void

      let human=objm.createSceneObjectFromJson( {
      "id": "ESHumanTest",
      "ref": "ESHuman_obj",
      "type": "ESHuman",
      "position": [
      109.60681752569195,
      18.58679192126289,
      0.5
      ],
      "rotation": [
      -8.135989761566222,
      0,
      0
      ],
      "name": "工人1",
      "animation": "walking"
      })
      let poi=objm.createSceneObjectFromJson({
      "id": "bbce8c58-f45e-4365-858f-624f9595a761",
      "type": "ESImageLabel",
      "position": [
      109.6074882,
      18.5868828,
      0.5
      ],
      "rotation": [
      -90,
      0,
      0
      ],
      "name": "蓝色相机1",
      "renderMode": 4
      })

      // 开启
      objm.activeViewer.changeToFollow('ESHumanTest', 20)

      //人物移动
      human.smoothMove([109.6074882, 18.5868828, 0.5], 20);
    • 切换到沿线路径模式。

      参数

      • geoLineStringId: string

        地理线字符串 ID。

      • 可选speed: number

        速度。

      • 可选heightOffset: number

        高度偏移。

      • 可选loop: boolean

        是否循环。

      • 可选turnRateDPS: number

        转弯速率(度/秒)。

      • 可选lineMode: "manual" | "auto"

        线路模式。

      返回 void

      const sceneObject = objm.createSceneObjectFromJson({
      "id": "9dc8d658-6287-4913-934a-06e1e8d6e22c",
      "type": "ESGeoLineString",
      "name": "ESGeoLineString_9dc8",
      "allowPicking": true,
      "points": [
      [
      111.86195260395567,
      22.307662979880124,
      -0.1803640225459114
      ],
      [
      111.8627277614124,
      22.306607462973968,
      0.08754877958473307
      ],
      [
      111.86171763564357,
      22.30720259529167,
      -0.40015763944409843
      ]
      ]
      })

      objm.activeViewer.changeToLine('9dc8d658-6287-4913-934a-06e1e8d6e22c', 30, 80, false, 10, "auto")
    • 切换到地图模式。

      返回 void

      objm.activeViewer.changeToMap()
      
    • 切换到旋转地球模式。

      参数

      • 可选latitude: number

        纬度。

      • 可选height: number

        高度。

      • 可选cycleTime: number

        周期时间。

      返回 void

      let latitude=38
      let height=10000000
      let cycleTime=60
      objm.activeViewer.changeToRotateGlobe(latitude, height, cycleTime)
    • 切换导航模式为“RotatePoint”(绕点)绕点旋转。此模式允许用户绕点旋转。

      参数

      • position: ESJVector3D

        要环绕的点位置(经纬度)。

      • distance: number = 50000

        距离点的距离,默认50000米 ,单位米

      • orbitPeriod: number = 60

        默认环绕一周的时间 单位S,默认60S。

      • heading: number = 90

        初始的环绕角度,默认0。

      • pitch: number = 0

        初始的环绕俯仰角,默认-30。

      返回 void

      const model = objm.createSceneObjectFromJson({
      "id": "8e8ead4c-a95c-445d-b870-01ad98cd344c",
      "type": "ESGltfModel",
      "position": [
      109.60681752569195, 18.58679192126289, 1
      ],
      "name": "大楼1"
      });

      objm.activeViewer.changeToRotatePoint([109.60681752569195, 18.58679192126289, 1], 300)
    • 切换到用户自定义模式。

      参数

      • userDefinedPawn: string

        用户自定义的角色。

      返回 void

      objm.activeViewer.changeToUserDefined('UE场景中自定义的Pawn的复制引用路径')
      
    • 切换到步行模式。

      参数

      返回 void

      let position=[109.60681752569195, 18.58679192126289, 200.9999999980438226]
      let jumpZVelocity=4.2
      let eyeHeight=1.2
      objm.activeViewer.changeToWalk(position,jumpZVelocity,eyeHeight)
    • 清空视口中的所有场景对象。

      返回 void

      objm.activeViewer.clearAllSceneObjects()
      
    • 参数

      • disposeFunc: () => void

      返回 () => void

    • 返回 void

    • 从视口中删除场景对象。

      类型参数

      参数

      • ...sceneObjects: T[]

        要删除的场景对象数组。

      返回 void

    • 返回 undefined

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

      返回 undefined

    • 返回 void

    • 别名,同 disposableAdd。

      类型参数

      参数

      • ...sceneObjects: T[]

        要添加的场景对象数组。

      返回 () => void

    • 一次性添加场景对象,并返回一个用于删除这些对象的函数。

      类型参数

      参数

      • ...sceneObjects: T[]

        要添加的场景对象数组。

      返回 () => void

    • 参数

      • disposeFunc: () => void

      返回 () => void

    • 类型参数

      • T extends { destroy(): void }

      参数

      • obj: T

      返回 T

    • 类型参数

      • T extends { destroy(): void }

      参数

      • obj: T

      返回 T

    • 飞行到指定位置。

      参数

      返回 undefined

    • 飞行到指定边界球。

      参数

      • rectangle: ESJVector4D

        边界球的矩形区域。

      • 可选distance: number

        距离。

      • 可选duration: number

        飞行持续时间。

      返回 void

    • 强制重新创建视口。

      返回 void

    • 获取指定 ID 对象的边界球信息。

      参数

      • id: string

        对象的 ID。

      返回 Promise<undefined>

    • 获取引擎类型。

      返回 string

    • 获取帧率。

      返回 number

    • 根据经纬度获取高度。

      参数

      • lon: number

        经度。

      • lat: number

        纬度。

      • 可选channel: string

        通道,UE特有属性。

      返回 Promise<null | number>

    • 根据经纬度数组获取高度数组。

      参数

      • lonLats: ESJVector2DArray

        经纬度数组。

      • 可选channel: string

        通道,UE特有属性。

      返回 Promise<undefined | (null | number)[]>

    • 获取像素对应的长度。

      返回 undefined | number

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

      参数

      • 可选language: string

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

      返回 Property[]

      属性列表。

    • 获取版本信息。

      返回 Promise<any>

    • 返回 Promise<undefined | ESJVector4D>

    • 判断视口中是否包含某个场景对象。

      类型参数

      参数

      • sceneObject: T

        要判断的场景对象。

      返回 boolean

    • 返回 void

    • 返回 boolean

    • 返回 boolean

    • 将经纬度高度坐标转换为屏幕位置。

      参数

      返回 Promise<undefined | ESJVector2D>

      objm.activeViewer.lonLatAltToScreenPosition([116.2354,23.3244,20]).then(res=>{
      console.log("经纬度转屏幕坐标",res)
      })
    • 统一整体移动场景对象。

      参数

      返回 void

      const sceneObj=objm.createSceneObjectFromJson({
      "id": "30caacb6-6fe0-4406-8f70-d3fbae1a2c50",
      "type": "ESImageLabel",
      "name": "蓝色相机1",
      "position": [
      119.36369331577765,
      34.6622708940133,
      -3143.483106725995
      ]
      })

      const sceneObj1=objm.createSceneObjectFromJson({
      "id": "74100d5d-1a30-4b2d-9ba1-eea2a3840418",
      "type": "ESTextLabel",
      "name": "白小文本1",
      "position": [
      110.45053587251344,
      32.26032172725045,
      -2562.356604123618
      ],
      "text": "白小文本1"
      })

      objm.activeViewer.moveObjects([sceneObj,sceneObj1])
    • 在屏幕位置进行拾取操作。

      参数

      • screenPosition: ESJVector2D

        屏幕位置。

      • 可选attachedInfo: any

        附加信息。

      • 可选_: boolean

      返回 Promise<undefined | ESJPickedResult>

    • 在屏幕位置快速拾取三维坐标。UE下和pickPosition功能一致,Cesium下不会触发3DTileset的preUpdate事件,性能较高。

      参数

      返回 Promise<undefined | ESJVector3D>

    • 返回 void

    • 设置当前时间。

      参数

      • value: string | number

        时间戳(毫秒)数值或者时间格式字符串 字符串格式 2024 06 26 12:34:56 或者 2023-09-29 或者 2023/09/29 12:34:56

      返回 void

    • 参数

      • rotation: number

      返回 void

    • 设置视口的状态日志。

      参数

      • value: string

        状态日志内容。

      返回 void

    • 开始编辑场景对象。

      参数

      • sceneObject: ESSceneObject

        要编辑的场景对象。

      • modes: string | string[]

        编辑模式数组或单个模式,可通过ESJEditingMode枚举进行调用。

      • 可选options: { callSource?: "inner" | "outer"; useKeyToSwitch?: boolean }

        编辑选项。

      返回 void

      const sceneObj=objm.createSceneObject('ESImageLabel')
      sceneObj.position=[116.2334,23.4453,30]
      objm.activeViewer.startEditing(sceneObj,'translation')
    • 停止编辑。

      返回 void

      objm.activeViewer.stopEditing()
      
    • 返回 void

    • 同步另一个视口的属性。

      参数

      • viewer: undefined | ESViewer

        要同步的视口,undefined 时解绑。

      返回 void

    • 类型参数

      • T extends { tryDestroy(): void }

      参数

      • obj: T

      返回 T

    • 返回 undefined

    • 类型参数

      • T extends { tryDestroy(): void }

      参数

      • obj: T

      返回 T