PilotGaea 3D O'view
    正在準備搜尋索引...

    介面 MoveModeOptionsMap

    操作模式參數表。

    interface MoveModeOptionsMap {
        "1": {};
        "2": {
            disableRotateVertical?: boolean;
            disableRotateHorizontal?: boolean;
            disablePan?: boolean;
            disableKeyboard?: boolean;
            disableZoom?: boolean;
            zoomRate?: number;
        };
        "3": {
            disableTouch?: boolean;
            disableMouse?: boolean;
            disableKeyboard?: boolean;
            staticAzimuthAngleOffset?: number;
            allowUpdateFocusPoint?: boolean;
            maxPolarAngle?: number;
            minPolarAngle?: number;
            maxDistance?: number;
            minDistance?: number;
            zoomRate?: number;
        };
        "4": {
            disableKeyboard?: boolean;
            disableMouse?: boolean;
            mouseRotateRate?: number;
            keyboardMoveRate?: number;
            keyboardRotateRate?: number;
            heightAboveGround?: number;
            enableMovingShake?: boolean;
            verticalAmplitude?: number;
            horizonAmplitude?: number;
            stopMovingShakeSpeed?: number;
            considerModel?: boolean;
            standDetectFrustumHeight?: number;
            standDetectRange?: number;
            collisionDetectFrustumHeight?: number;
            collisionDetectRange?: number;
        };
        "5": {
            disableMouse?: boolean;
            disableKeyboard?: boolean;
            staticAzimuthAngleOffset?: number;
            maxPolarAngle?: number;
            minPolarAngle?: number;
            maxDistance?: number;
            minDistance?: number;
            focusPoint?: GeoPoint
            | Geo3DPoint;
            heightAboveGround?: number;
            fixSpeed?: boolean;
            moveSpeed?: number;
            glTFModel?: window.ov.CustomGLTFEntity;
            object?: any;
            glTFModelFunction?: (
                glTFEntity: window.ov.CustomGLTFEntity,
                position: Geo3DPoint,
                speed: number,
                rotate: { x: number; y: number; z: number; offset: number },
                object: any,
            ) => void;
            zoomRate?: number;
            considerModel?: boolean;
            standDetectFrustumHeight?: number;
            collisionDetectRange?: number;
            collisionDetectFrustumHeight?: number;
            standDetectRange?: number;
            collisionBoxWidth?: number;
            collisionBoxHeight?: number;
        };
        "6": {
            entity?: window.ov.CustomGLTFEntity;
            moveEvent?: CameraMoveEvent;
            firstPersonViewMovingFunction?: (
                entity: null | window.ov.CustomGLTFEntity,
                event: null | CameraMoveEvent,
                pos: Geo3DPoint,
                v: Geo3DPoint,
                up: Geo3DPoint,
                offset: Geo3DPoint,
            ) => void;
            thirdPersonViewMovingFunction?: (
                entity: null | window.ov.CustomGLTFEntity,
                moveEvent: null | CameraMoveEvent,
                pos: Geo3DPoint,
                angle: { azimuthAngle: number; polarAngle: number },
            ) => void;
            view?: FOLLOW_VIEW;
            minDistance?: number;
            maxDistance?: number;
            azimuthAngleRotatePerSecond?: number;
            polarAngleRotatePerSecond?: number;
        };
        "7": {
            disableKeyboard?: boolean;
            disableZoom?: boolean;
            zoomRate?: number;
        };
    }
    索引

    屬性

    1 2 3 4 5 6 7

    屬性

    "1": {}

    滑鼠模式參數。

    "2": {
        disableRotateVertical?: boolean;
        disableRotateHorizontal?: boolean;
        disablePan?: boolean;
        disableKeyboard?: boolean;
        disableZoom?: boolean;
        zoomRate?: number;
    }

    面板模式參數。

    類型宣告

    • 可選disableRotateVertical?: boolean

      關閉垂直旋轉

    • 可選disableRotateHorizontal?: boolean

      關閉水平旋轉

    • 可選disablePan?: boolean

      關閉平移

    • 可選disableKeyboard?: boolean

      關閉鍵盤輸入

    • 可選disableZoom?: boolean

      關閉縮放

    • 可選zoomRate?: number

      縮放速度

    "3": {
        disableTouch?: boolean;
        disableMouse?: boolean;
        disableKeyboard?: boolean;
        staticAzimuthAngleOffset?: number;
        allowUpdateFocusPoint?: boolean;
        maxPolarAngle?: number;
        minPolarAngle?: number;
        maxDistance?: number;
        minDistance?: number;
        zoomRate?: number;
    }

    旋轉模式參數。

    類型宣告

    • 可選disableTouch?: boolean

      關閉觸控輸入

    • 可選disableMouse?: boolean

      關閉滑鼠輸入

    • 可選disableKeyboard?: boolean

      關閉鍵盤輸入

    • 可選staticAzimuthAngleOffset?: number

      方位角平移量

    • 可選allowUpdateFocusPoint?: boolean

      允許更新注視點

    • 可選maxPolarAngle?: number

      天頂角上限

    • 可選minPolarAngle?: number

      天頂角下限

    • 可選maxDistance?: number

      距離注視點最大距離

    • 可選minDistance?: number

      距離注視點最小距離

    • 可選zoomRate?: number

      縮放速度

    "4": {
        disableKeyboard?: boolean;
        disableMouse?: boolean;
        mouseRotateRate?: number;
        keyboardMoveRate?: number;
        keyboardRotateRate?: number;
        heightAboveGround?: number;
        enableMovingShake?: boolean;
        verticalAmplitude?: number;
        horizonAmplitude?: number;
        stopMovingShakeSpeed?: number;
        considerModel?: boolean;
        standDetectFrustumHeight?: number;
        standDetectRange?: number;
        collisionDetectFrustumHeight?: number;
        collisionDetectRange?: number;
    }

    地面行走模式參數。

    類型宣告

    • 可選disableKeyboard?: boolean

      關閉鍵盤輸入

    • 可選disableMouse?: boolean

      關閉滑鼠輸入

    • 可選mouseRotateRate?: number

      滑鼠旋轉速度

    • 可選keyboardMoveRate?: number

      鍵盤移動速度

    • 可選keyboardRotateRate?: number

      鍵盤旋轉速度

    • 可選heightAboveGround?: number

      離地高度

    • 可選enableMovingShake?: boolean

      開啟行走搖晃

    • 可選verticalAmplitude?: number

      垂直搖晃幅度

    • 可選horizonAmplitude?: number

      水平搖晃幅度

    • 可選stopMovingShakeSpeed?: number

      停止搖晃速度

    • 可選considerModel?: boolean

      是否考慮三維模型

    • 可選standDetectFrustumHeight?: number

      站立採樣攝影機高度(相對當前攝影機位置),單位公尺

    • 可選standDetectRange?: number

      站立偵測範圍,預設為0.1(公尺)

    • 可選collisionDetectFrustumHeight?: number

      碰撞採樣攝影機高度(相對當前攝影機位置),單位公尺

    • 可選collisionDetectRange?: number

      碰撞偵測範圍,預設為0.5(公尺)

    "5": {
        disableMouse?: boolean;
        disableKeyboard?: boolean;
        staticAzimuthAngleOffset?: number;
        maxPolarAngle?: number;
        minPolarAngle?: number;
        maxDistance?: number;
        minDistance?: number;
        focusPoint?: GeoPoint | Geo3DPoint;
        heightAboveGround?: number;
        fixSpeed?: boolean;
        moveSpeed?: number;
        glTFModel?: window.ov.CustomGLTFEntity;
        object?: any;
        glTFModelFunction?: (
            glTFEntity: window.ov.CustomGLTFEntity,
            position: Geo3DPoint,
            speed: number,
            rotate: { x: number; y: number; z: number; offset: number },
            object: any,
        ) => void;
        zoomRate?: number;
        considerModel?: boolean;
        standDetectFrustumHeight?: number;
        collisionDetectRange?: number;
        collisionDetectFrustumHeight?: number;
        standDetectRange?: number;
        collisionBoxWidth?: number;
        collisionBoxHeight?: number;
    }

    第三人稱模式參數。 熱鍵說明:

    • W: 向前移動
    • S: 向後移動
    • A: 向左移動
    • D: 向右移動
    • 上: 面對注視點視角向上
    • 下: 面對注視點視角向下
    • 左: 面對注視點向左移動
    • 右: 面對注視點向右移動
    • +: 面對注視點逆時針移動
    • -: 面對注視點順時針移動
    • 滑鼠左鍵: 視角拖曳
    • 滑鼠中鍵: 移動到游標所指座標

    類型宣告

    • 可選disableMouse?: boolean

      關閉滑鼠輸入

    • 可選disableKeyboard?: boolean

      關閉鍵盤輸入

    • 可選staticAzimuthAngleOffset?: number

      方位角平移量

    • 可選maxPolarAngle?: number

      天頂角上限

    • 可選minPolarAngle?: number

      天頂角下限

    • 可選maxDistance?: number

      距離注視點最大距離

    • 可選minDistance?: number

      距離注視點最小距離

    • 可選focusPoint?: GeoPoint | Geo3DPoint

      初始注視點

    • 可選heightAboveGround?: number

      離地高度

    • 可選fixSpeed?: boolean

      固定速度,不隨攝影機高度調整

    • 可選moveSpeed?: number

      移動速度,若fixSpeedfalse,為初始速度;若fixSpeedtrue,為最終速度

    • 可選glTFModel?: window.ov.CustomGLTFEntity

      使用的模型

    • 可選object?: any

      物件參數

    • 可選glTFModelFunction?: (
          glTFEntity: window.ov.CustomGLTFEntity,
          position: Geo3DPoint,
          speed: number,
          rotate: { x: number; y: number; z: number; offset: number },
          object: any,
      ) => void

      模型處理函式

      const glTFModelFunction = (glTFEntity, position, speed, rotate, object) => {
      //設定旋轉軸
      rotate.x = 1;
      rotate.y = 0;
      rotate.z = 0;
      //設定偏移角度
      rotate.offset = 30;
      glTFEntity.update({ position: position });
      glTFEntity.playAll();
      let list = glTFEntity.getAnimationList();
      if (speed < 1.5) {
      let weight = speed / 1.5;
      glTFEntity.setAnimationWeight(0, 1 - weight);
      glTFEntity.setAnimationWeight(1, 0);
      glTFEntity.setAnimationWeight(3, weight);
      if (list.length !== 0) {
      glTFEntity.setPlaySpeed(0, list[0].cycleTime \* (1 + weight));
      glTFEntity.setPlaySpeed(1, list[1].cycleTime \* (1 + weight));
      glTFEntity.setPlaySpeed(3, list[3].cycleTime \* (1 + weight));
      }
      } else {
      let weight = (speed - 1.5) / 1.5;
      if (weight > 1.0) {
      weight = 1.0;
      }
      glTFEntity.setAnimationWeight(0, 0);
      glTFEntity.setAnimationWeight(1, weight);
      glTFEntity.setAnimationWeight(3, 1 - weight);
      if (list.length !== 0) {
      glTFEntity.setPlaySpeed(0, list[0].cycleTime \* (1 + weight));
      glTFEntity.setPlaySpeed(1, list[1].cycleTime \* (1 + weight));
      glTFEntity.setPlaySpeed(3, list[3].cycleTime \* (1 + weight));
      }
      }
    • 可選zoomRate?: number

      縮放速度

    • 可選considerModel?: boolean

      是否考慮三維模型

    • 可選standDetectFrustumHeight?: number

      站立採樣攝影機高度(相對注視點),單位公尺

    • 可選collisionDetectRange?: number

      站立偵測範圍,預設為0.1(公尺)

    • 可選collisionDetectFrustumHeight?: number

      碰撞採樣攝影機高度(相對當前攝影機位置),單位公尺

    • 可選standDetectRange?: number

      碰撞偵測範圍,預設為0.5(公尺)

    • 可選collisionBoxWidth?: number

      碰撞方塊寬度

    • 可選collisionBoxHeight?: number

      碰撞方塊高度

    "6": {
        entity?: window.ov.CustomGLTFEntity;
        moveEvent?: CameraMoveEvent;
        firstPersonViewMovingFunction?: (
            entity: null | window.ov.CustomGLTFEntity,
            event: null | CameraMoveEvent,
            pos: Geo3DPoint,
            v: Geo3DPoint,
            up: Geo3DPoint,
            offset: Geo3DPoint,
        ) => void;
        thirdPersonViewMovingFunction?: (
            entity: null | window.ov.CustomGLTFEntity,
            moveEvent: null | CameraMoveEvent,
            pos: Geo3DPoint,
            angle: { azimuthAngle: number; polarAngle: number },
        ) => void;
        view?: FOLLOW_VIEW;
        minDistance?: number;
        maxDistance?: number;
        azimuthAngleRotatePerSecond?: number;
        polarAngleRotatePerSecond?: number;
    }

    跟隨模式參數。

    類型宣告

    • 可選entity?: window.ov.CustomGLTFEntity

      自畫圖素 CustomGLTFEntity

    • 可選moveEvent?: CameraMoveEvent

      移動事件 ov.MoveEvent

    • 可選firstPersonViewMovingFunction?: (
          entity: null | window.ov.CustomGLTFEntity,
          event: null | CameraMoveEvent,
          pos: Geo3DPoint,
          v: Geo3DPoint,
          up: Geo3DPoint,
          offset: Geo3DPoint,
      ) => void

      第一人稱處理函式

      const firstPersonViewMovingFunction = (entity, moveEvent, pos, v, up, offset) => {
      let position = entity.getParameter().position;
      let vDir = moveEvent.getV();
      let upDir = moveEvent.getUp();
      //設定座標
      pos.x = position.x;
      pos.y = position.y;
      pos.z = position.z;
      //設定面向
      v.x = vDir.x;
      v.y = vDir.y;
      v.z = vDir.z;
      //設定頭頂方向
      up.x = upDir.x;
      up.y = upDir.y;
      up.z = upDir.z;
      //設定偏移量
      offset.x = -0.5;
      offset.y = 2;
      offset.z = 2;
      }
    • 可選thirdPersonViewMovingFunction?: (
          entity: null | window.ov.CustomGLTFEntity,
          moveEvent: null | CameraMoveEvent,
          pos: Geo3DPoint,
          angle: { azimuthAngle: number; polarAngle: number },
      ) => void

      第三人稱處理函式

      const thirdPersonViewMovingFunction = (entity, moveEvent, pos, angle) => {
      //設定注視座標
      let position = entity.getParameter().position;
      pos.x = position.x;
      pos.y = position.y;
      pos.z = position.z;
      //設定方位角與天頂角
      angle.azimuthAngle = moveEvent.getAzimuthAngle()
      angle.polarAngle = moveEvent.getPolarAngle()
      }
    • 可選view?: FOLLOW_VIEW

      跟隨視角 ov.FOLLOW_VIEW

    • 可選minDistance?: number

      距離注視點最小距離

    • 可選maxDistance?: number

      距離注視點最大距離

    • 可選azimuthAngleRotatePerSecond?: number

      方位角每秒旋轉角度 (deg/s)

    • 可選polarAngleRotatePerSecond?: number

      天頂角每秒旋轉角度 (deg/s)

    "7": { disableKeyboard?: boolean; disableZoom?: boolean; zoomRate?: number }

    GoogleEarth模式參數。

    類型宣告

    • 可選disableKeyboard?: boolean

      關閉鍵盤輸入

    • 可選disableZoom?: boolean

      關閉縮放

    • 可選zoomRate?: number

      縮放速度