import { ESSceneObject, PickedInfo, SceneObjectPickedInfo } from 'xbsj-xe2/dist-node/xe2-base-objects'; import { Event, PartialWithUndefinedReactivePropsToNativeProps, ReactivePropsToNativePropsAndChanged } from 'xbsj-xe2/dist-node/xe2-base-utils'; import { CzmViewer } from 'xbsj-xe2/dist-node/xe2-cesium-objects'; import { UeViewer } from 'xbsj-xe2/dist-node/xe2-ue-objects'; import { ESObjectsManager } from '../ESObjectsManager'; import * as Cesium from 'cesium'; export declare type ESViewerType = 'ESViewer' | 'ESUeViewer' | 'ESCzmViewer'; export declare type ESNavigationMode = "Map" | "Walk" | "Line" | "UserDefined" | "RotateGlobe" | "RotatePoint" | "Follow"; declare type FlyToParamType = { distance: number; heading: number; pitch: number; flyDuration: number; hDelta: number; pDelta: number; }; declare type StatusInfoType = { fps: number; position: [number, number, number]; rotation: [number, number, number]; length: number; }; /** * https://www.wolai.com/earthsdk/pHn9b4jQ8ArXz8U29bjrAb * https://c0yh9tnn0na.feishu.cn/docx/K7VwdBYTMoG0BtxMX6McvOVDn4d */ export declare abstract class ESViewer extends ESSceneObject { private _objectManager; private _vid; private _typeName; abstract get innerViewer(): CzmViewer | UeViewer; _statusInfo: StatusInfoType; get typeName(): ESViewerType; get defaultProps(): { execOnceFuncStr: string | undefined; updateFuncStr: string | undefined; toDestroyFuncStr: string | undefined; name: string; ref: string | undefined; devTags: import("xbsj-xe2/dist-node/xe2-base-utils").ReactiveVariable; extras: import("xbsj-xe2/dist-node/xe2-base-utils").ReactiveVariable; show: boolean; globeShow: boolean; ionAccessToken: string; apiKey: string; apiUrl: string; secretKey: string; speechVoiceMode: string; hoverTime: number; debug: boolean; lonLatFormat: string; fov: number; currentTime: number; simulationTime: number; timeSync: boolean; rain: number; snow: number; cloud: number; fog: number; depthOfField: number; atmosphere: boolean; sun: boolean; moon: boolean; editingPointSize: number | undefined; editingPointColor: import("xbsj-xe2/dist-node/xe2-base-utils").ReactiveVariable<[number, number, number, number] | undefined>; editingAuxiliaryPointColor: import("xbsj-xe2/dist-node/xe2-base-utils").ReactiveVariable<[number, number, number, number] | undefined>; editingLineWidth: number | undefined; editingLineColor: import("xbsj-xe2/dist-node/xe2-base-utils").ReactiveVariable<[number, number, number, number] | undefined>; editingAxisSize: number | undefined; editingAuxiliaryPointSize: number | undefined; textAvoidance: boolean | undefined; flyToBoundingSize: number | undefined; editingHeightOffset: number | undefined; terrainShader: { slope: { show: boolean; }; aspect: { show: boolean; }; elevationRamp: { show: boolean; }; elevationContour: { show: boolean; color: number[]; spacing: number; width: number; }; }; }; get json(): JsonType; set json(value: JsonType); get objectManager(): ESObjectsManager; get status(): import("xbsj-xe2/dist-node/xe2-base-objects").ViewerStatus; get statusChanged(): import("xbsj-xe2/dist-node/xe2-base-utils").Listener<[import("xbsj-xe2/dist-node/xe2-base-objects").ViewerStatus, import("xbsj-xe2/dist-node/xe2-base-objects").ViewerStatus]>; get viewerChanged(): import("xbsj-xe2/dist-node/xe2-base-utils").Listener<[Cesium.Viewer | undefined, Cesium.Viewer | undefined]> | import("xbsj-xe2/dist-node/xe2-base-utils").Listener<[import("xbsj-xe2/dist-node/xe2-ue-objects/base/UeViewer/UeCloudViewerBase").UeCloudViewerBase | undefined, import("xbsj-xe2/dist-node/xe2-ue-objects/base/UeViewer/UeCloudViewerBase").UeCloudViewerBase | undefined]>; get actived(): boolean; private _activedDispose; private _syncViewer; get syncViewer(): ESViewer | undefined; set syncViewer(value: ESViewer | undefined); get syncViewerChanged(): import("xbsj-xe2/dist-node/xe2-base-utils").Listener<[ESViewer | undefined, ESViewer | undefined]>; readonly syncEvent: import("xbsj-xe2/dist-node/xe2-base-utils").NextAnimateFrameEvent; private _syncEventDispose; private _syncEventResetting; syncOtherViewer(viewer: ESViewer | undefined): void; private _timeSyncEventDispose; /** * 设置当前时间 * @param value 时间戳(毫秒)数值或者时间格式字符串 * 字符串格式 2024 06 26 12:34:56 或者 2023-09-29或者2023/09/29 12:34:56 */ setCurrentTime(value: number | string): void; getEngineType(): "Cesium" | "UE"; /** * 两种引擎返回值不一致 * @param screenPosition 屏幕坐标 * @param attachedInfo 自定义标识 * @param parentInfo 是否拾取父节点 仅仅UE支持 * @return PickedInfo | UePickedInfo | undefined */ pick(screenPosition: [number, number], attachedInfo?: any, parentInfo?: boolean): Promise; pickPosition(screenPosition: [number, number]): Promise<[number, number, number] | undefined>; flyIn(position: [number, number, number], rotation?: [number, number, number], duration?: number): void; flyInUniform(position: [number, number, number], rotation?: [number, number, number], duration?: number): void; flyTo(flyToParam: FlyToParamType, position: [number, number, number]): void; flyToBoundingSphere(rectangle: [number, number, number, number], distance?: number, duration?: number | undefined): void; getCurrentCameraInfo(): { position: [number, number, number]; rotation: [number, number, number]; } | undefined; getLengthInPixel(): number; protected _navigationMode: import("xbsj-xe2/dist-node/xe2-base-utils").ReactiveVariable; get navigationModeChanged(): import("xbsj-xe2/dist-node/xe2-base-utils").Listener<[ESNavigationMode, ESNavigationMode]>; getNavigationMode(): ESNavigationMode; /** * 切换导航模式为“行走”(第一人称)模式。 * 此模式允许用户在行走的模式下导航,键盘 W A S D控制行走,鼠标控制方向。 * * @param position - 行走导航模式的初始位置 [number, number, number]。 * @param jumpZVelocity - 跳跃时的 Z 轴速度。默认为 4.2m/s。 * * @returns {void} */ changeToWalk(position: [number, number, number], jumpZVelocity?: number): void; /** * 切换导航模式为“地图”模式。 * 此模式允许用户在地图上自由导航。 * * @returns {void} */ changeToMap(): void; /** * 切换到“旋转地球”导航模式。 * 此模式允许用户在连续循环中旋转地球。 * * @param latitude - 地球旋转的纬度。默认为 38 度。 * @param height - 地球旋转的高度。默认为 10,000,000 米。 * @param cycleTime - 一个完整循环所需的秒数。默认为 60 秒。 * * @returns {void} */ changeToRotateGlobe(latitude?: number, height?: number, cycleTime?: number): void; /** * 切换导航模式为“Line”(线路)沿线漫游。 * 此模式允许用户沿指定的地理线路导航。 * @param geoLineStringId - 要导航的地理线路的唯一标识符。 * @param speed - 用户在线路上导航的速度 默认10m/s。 * @param heightOffset - 用户在线路上导航的垂直偏移量 默认 10米。 * @param loop - 一个布尔值,表示在到达线路末尾后是否导航回到起点循环。默认开启 * @param turnRateDPS - 用户在线路上导航的转弯速度 度/秒。 * @param lineMode - 路径漫游模式 auto/manual 默认 auto。 * * @returns {void} */ changeToLine(geoLineStringId: string, speed?: number, heightOffset?: number, loop?: boolean, turnRateDPS?: number, lineMode?: "auto" | "manual"): void; /** * 切换导航模式为“UserDefined” 仅UE支持。 * 此模式允许用户自定义交互方式。 * * @param userDefinedPawn ue支持,用户自定义交互方式 * @returns */ changeToUserDefined(userDefinedPawn: string): void; /** * 切换导航模式为“RotatePoint”(绕点)绕点旋转。 * 此模式允许用户绕点旋转。 * @param position - 要环绕的点位置(经纬度)。 * @param heading - 初始的环绕角度,默认0。 * @param pitch - 初始的环绕俯仰角,默认-30。 * @param distance - 距离点的距离,默认50000米 ,单位米 * @param orbitPeriod - 默认环绕一周的时间 单位S,默认60S。 * * @returns {void} */ changeToRotatePoint(position: [number, number, number], distance?: number, orbitPeriod?: number, heading?: number, pitch?: number): void; /** * 切换导航模式为“Follow”(跟随)跟随模式。 * 此模式允许视角跟随ES对象。 * @param objectId - 要跟随的ES对象Id。 * @param distance - 距离点的距离,默认0米 ,单位米 传入0会自行计算距离为包围盒半径*3 * @param heading - 初始的环绕角度,默认0。 * @param pitch - 初始的环绕俯仰角,默认-30。 * @param relativeRotation - 相机姿态保持相对,默认true。默认情况下,相机会跟随人物视角转动,如果设置为false,相机会保持一个方向不动。 * * @returns {void} */ changeToFollow(objectId: string, distance?: number, heading?: number, pitch?: number, relativeRotation?: boolean): void; abstract computeVisibility(center: [number, number, number], radius: number): Promise<"outside" | "intersecting" | "inside" | undefined>; getFPS(): number; _versions: string[]; getVersion(): string[]; private _setVersions; getHeightByLonLat(lon: number, lat: number, channel?: string): Promise; getHeightsByLonLats(lonLats: [number, number][], channel?: string): Promise<(number | null)[] | undefined>; capture(resx?: number, resy?: number): Promise; lonLatAltToScreenPosition(position: [number, number, number]): Promise<[number, number] | undefined>; /**事件 */ private _hoverEvent; get hoverEvent(): Event<[{ screenPosition: [number, number]; mouseEvent?: MouseEvent | undefined; }]>; private _hoverOutEvent; get hoverOutEvent(): Event<[]>; private _mouseMoveEvent; get mouseMoveEvent(): Event<[{ screenPosition: [number, number]; mouseEvent?: MouseEvent | undefined; }]>; private _clickEvent; get clickEvent(): Event<[{ screenPosition?: [number, number] | undefined; mouseEvent?: MouseEvent | undefined; }]>; private _dbclickEvent; get dbclickEvent(): Event<[{ screenPosition?: [number, number] | undefined; mouseEvent?: MouseEvent | undefined; }]>; private _pickedEvent; get pickedEvent(): Event<[pickedInfo: PickedInfo]>; get id(): string; constructor(_objectManager: ESObjectsManager, _vid: string, _typeName: ESViewerType); } export declare namespace ESViewer { const createReactProps: () => { show: boolean; globeShow: boolean; ionAccessToken: string; apiKey: string; apiUrl: string; secretKey: string; speechVoiceMode: string; hoverTime: number; debug: boolean; lonLatFormat: string; fov: number; currentTime: number; simulationTime: number; timeSync: boolean; rain: number; snow: number; cloud: number; fog: number; depthOfField: number; atmosphere: boolean; sun: boolean; moon: boolean; editingPointSize: number | undefined; editingPointColor: import("xbsj-xe2/dist-node/xe2-base-utils").ReactiveVariable<[number, number, number, number] | undefined>; editingAuxiliaryPointColor: import("xbsj-xe2/dist-node/xe2-base-utils").ReactiveVariable<[number, number, number, number] | undefined>; editingLineWidth: number | undefined; editingLineColor: import("xbsj-xe2/dist-node/xe2-base-utils").ReactiveVariable<[number, number, number, number] | undefined>; editingAxisSize: number | undefined; editingAuxiliaryPointSize: number | undefined; textAvoidance: boolean | undefined; flyToBoundingSize: number | undefined; editingHeightOffset: number | undefined; terrainShader: { slope: { show: boolean; }; aspect: { show: boolean; }; elevationRamp: { show: boolean; }; elevationContour: { show: boolean; color: number[]; spacing: number; width: number; }; }; }; } export declare namespace ESViewer { const createDefaultProps: () => { execOnceFuncStr: string | undefined; updateFuncStr: string | undefined; toDestroyFuncStr: string | undefined; name: string; ref: string | undefined; devTags: import("xbsj-xe2/dist-node/xe2-base-utils").ReactiveVariable; extras: import("xbsj-xe2/dist-node/xe2-base-utils").ReactiveVariable; show: boolean; globeShow: boolean; ionAccessToken: string; apiKey: string; apiUrl: string; secretKey: string; speechVoiceMode: string; hoverTime: number; debug: boolean; lonLatFormat: string; fov: number; currentTime: number; simulationTime: number; timeSync: boolean; rain: number; snow: number; cloud: number; fog: number; depthOfField: number; atmosphere: boolean; sun: boolean; moon: boolean; editingPointSize: number | undefined; editingPointColor: import("xbsj-xe2/dist-node/xe2-base-utils").ReactiveVariable<[number, number, number, number] | undefined>; editingAuxiliaryPointColor: import("xbsj-xe2/dist-node/xe2-base-utils").ReactiveVariable<[number, number, number, number] | undefined>; editingLineWidth: number | undefined; editingLineColor: import("xbsj-xe2/dist-node/xe2-base-utils").ReactiveVariable<[number, number, number, number] | undefined>; editingAxisSize: number | undefined; editingAuxiliaryPointSize: number | undefined; textAvoidance: boolean | undefined; flyToBoundingSize: number | undefined; editingHeightOffset: number | undefined; terrainShader: { slope: { show: boolean; }; aspect: { show: boolean; }; elevationRamp: { show: boolean; }; elevationContour: { show: boolean; color: number[]; spacing: number; width: number; }; }; }; } export interface ESViewer extends ReactivePropsToNativePropsAndChanged> { } declare type JsonType = PartialWithUndefinedReactivePropsToNativeProps & { type: string; }>; export {};