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

    類別 TerrainView

    三維場景視圖

    索引

    UI

    圖層

    方法 - KML

    方法 - Other

    方法 - XR

    方法 - 圖台

    方法 - 圖素

    方法 - 地形

    方法 - 場景效果

    方法 - 快取

    方法 - 控制

    方法 - 攝影機

    方法 - 時間

    方法 - 測量

    方法 - 渲染

    方法 - 游標

    方法 - 裁切

    方法 - 輸入

    最佳解說員

    構造函數

    模組

    疊加圖層

    訪問器屬性 - 圖台

    訪問器屬性 - 地形

    訪問器屬性 - 場景效果

    訪問器屬性 - 控制

    訪問器屬性 - 攝影機

    訪問器屬性 - 時間

    訪問器屬性 - 渲染

    訪問器屬性 - 游標

    訪問器屬性 - 輸入

    UI

    • 加入提示圖片。

      參數

      回傳 null | Figure

      提示圖片物件。

      let figure = terrainView.addFigure({
      url: "images/common/logo.png",
      width: "300px",
      height: "100px",
      bottom: "10px",
      right: "10px"
      });
    • 加入提示文字。

      參數

      回傳 null | window.ov.Element.Text

      提示文字物件

      terrainView.addPromptText({
      text: "測試文字",
      font: "標楷體",
      size: 120,
      color: new ov.Color("#00FF00"),
      align: ov.TEXT_ALIGN.HORZ_CENTER | ov.TEXT_ALIGN.VERT_VCENTER
      });
    • 添加UI物件到圖台。

      參數

      回傳 void

    • 清除全部提示圖片。

      回傳 void

      addFigure

    • 清除全部提示文字。

      回傳 void

    • 取得指定類別的Widget陣列。

      類型參數

      參數

      • type: Object

        Widget的類型。

      回傳 T[]

      指定類別的Widget陣列。

      new ov.Widget.Timeline({terrainView: terrainView});
      let timeline = terrainView.getWidgetByType(ov.Widget.Timeline); // [ov.Widget.Timeline]
    • 從圖台移除UI物件。

      參數

      回傳 void

    圖層

    • 加入模型圖層。

      參數

      回傳 void

      terrainView.addModelLayer({
      url: "http://127.0.0.1:8080",
      identifier: "mesh",
      callback: (success, layer, err) => {
      if (success) {
      console.log(layer.name);
      } else {
      console.error(err);
      }
      }
      });
    • 加入模型集圖層。

      參數

      回傳 void

      terrainView.addModelSetLayer({
      url: "http://127.0.0.1:8080",
      identifier: "modelSet",
      callback: (success, layer, err) => {
      if (success) {
      console.log(layer.name);
      } else {
      console.error(err);
      }
      }
      });
    • 加入OGC 3D Tiles圖層。

      參數

      回傳 void

      terrainView.addOGC3DTilesLayer({
      url: "TilesetWithDiscreteLOD/tileset.json",
      callback: (success, layer) => {
      if (success) {
      console.log(layer);
      }
      else {
      console.error(err);
      }
      }
      });
    • 加入 OGC I3S 圖層。

      參數

      回傳 void

      // O'view MapServer I3S 的服務網址規則為
      // {MapServerUrl}/i3s/rest/services/{LayerName}/SceneServer/layers/0
      terrainView.addOGCI3SLayer({
      url: "http://localhost:8080/i3s/rest/services/Sample/SceneServer/layers/0",
      callback: (success, layer, err) => {
      if (success) {
      console.log(layer.name);
      } else {
      console.error(err);
      }
      }
      });
    • 加入傾斜攝影模型圖層。

      參數

      回傳 void

      terrainView.addPhotogrammetryModelLayer({
      url: "http://127.0.0.1:8080",
      identifier: "PhotogrammetryModel",
      callback: (success, layer, err) => {
      if (success) {
      console.log(layer.name);
      }
      else {
      console.error(err);
      }
      }
      });
    • 加入管線圖層。

      參數

      回傳 void

      terrainView.addPipelineLayer({
      url: "http://127.0.0.1:8080",
      identifier: "pipeline",
      callback: (success, layer, err) => {
      if (success) {
      console.log(layer.name);
      } else {
      console.error(err);
      }
      }
      });
    • 加入點雲圖層。

      參數

      回傳 void

      terrainView.addPointCloudLayer({
      url: "http://127.0.0.1:8080",
      identifier: "pointCloud",
      callback: (success, layer, err) => {
      if (success) {
      console.log(layer.name);
      } else {
      console.error(err);
      }
      }
      });
    • 加入S3雲端傾斜攝影模型圖層。

      參數

      回傳 void

      terrainView.addPhotogrammetryModelLayer({
      url: "http://example.com/bucketroot/",
      callback: (success, layer, err) => {
      if (success) {
      console.log(layer);
      }
      else {
      console.error(err);
      }
      }
      });
    • 加入向量圖層。

      參數

      回傳 void

      terrainView.addVectorLayer({
      url: "http://127.0.0.1:8080",
      identifier: "vector",
      callback: (success, layer, err) => {
      if (success) {
      console.log(layer.name);
      } else {
      console.error(err);
      }
      }
      });
    • 恢復地形檔的WMTS影像。

      回傳 boolean

      是否恢復成功。

    • 設定地形檔的WMTS影像。

      參數

      回傳 boolean

      是否設定成功。

    方法 - KML

    • 新增KML場景。

      參數

      • param: { name: string }

        參數。

        • name: string

          場景名稱。

      回傳 KMLScene

      KML場景。

    • 取得所有KML場景。

      回傳 KMLScene[]

      KML場景。

    • 匯入KML。

      參數

      • param: { callback: (scene: null | KMLScene) => void; url: string; name?: string }

        參數。

        • callback: (scene: null | KMLScene) => void

          完成後的回呼函式。

        • url: string

          kml位址

        • 可選name?: string

          場景名稱。

      回傳 void

    • 移除指定KML場景。

      參數

      回傳 boolean

      是否移除成功。

    方法 - Other

    • 執行圖台指令

      類型參數

      • T extends
            | (keyof CommandParameter)
            | (keyof CommandParameter)
            | "addModelLayer"
            | "addModelSetLayer"
            | "addOGC3DTilesLayer"
            | "addOGCI3SLayer"
            | "addPhotogrammetryModelLayer"
            | "addPipelineLayer"
            | "addPointCloudLayer"
            | "addVectorLayer"
            | "addCustomLayer"
            | "removeLayer"
            | "addTerrainCustomTileOverlay"
            | "addTerrainSingleTileOverlay"
            | "addTerrainWMTSOverlay"
            | "addTerrainWMSOverlay"
            | "addTerrainWFSOverlay"
            | "addTerrainVectorTileOverlay"
            | "addTerrainVisualizedDataGridOverlay"
            | "addTerrainSceneOverlay"
            | "addTerrainDitchOverlay"
            | "addTerrainHeatmapOverlay"
            | "removeTerrainOverlay"

      參數

      回傳 void

    • 取得XR手把射線顏色。

      回傳 window.ov.Color

      射線顏色。

    • 取得XR手把射線長度。

      回傳 number

      設線長度。

    • 移除所有XR手把事件。

      回傳 void

    • 實驗性

      設定投影模式。 為實驗性質功能,某些狀況下可能會出現非預期的結果。

      參數

      回傳 void

    • 設定XR手把射線顏色。

      參數

      回傳 void

    • 設定XR手把射線長度。

      參數

      • length: number

        設線長度。

      回傳 void

    • 更新XR參數設定。

      參數

      • setting: XRSetting

        XR設定參數。

      回傳 void

    方法 - XR

    • 新增VR空間下的自畫圖素,會隨著頭盔更新位置。

      參數

      • customEntity: window.ov.CustomEntity

        自畫圖素。

      • position: Geo3DPoint

        相對頭盔的位置。

      • geoParam: string

        位置的參數名稱。

      • isFixed: boolean

        位置方位是否固定。

      回傳 void

    • 加入一個VR UI容器。

      參數

      回傳 void

    • 新增XR手把事件。

      類型參數

      • T extends keyof XRGamepadEventMap

      參數

      • type: T
      • param: XRGamepadEventMap[T]

        參數。

      回傳 void

    • 關閉VR。

      回傳 void

    • 校正ARHitTest平面於地表,需在初始化時有開啟HitTest。

      回傳 void

    • 建立一個VR UI容器。

      參數

      • param: VRUIBlockOptions

        VR UI容器參數。

      回傳 VRUIBlockEntity

      VR UI容器。

    • 建立一個VR UI標籤。

      參數

      • param: VRUITextOptions

        VR UI標籤參數。

      回傳 VRUITextEntity

      UI標籤。

    • 取得AR/VR的空間資訊

      回傳 XRViewInformation

      空間資訊

    • 取得AR/VR畫面viewport,VR為雙眼各占一半寬。

      回傳 CRect

      viewport。

    • 初始化AR,需在https或localhost下。 如果系統支援AR,按鈕會變得可按。 啟動選項參閱 XRSystem.requestSession

      參數

      • buttonElement: HTMLButtonElement

        按鈕元件。

      • callback: () => void

        AR啟動後的回呼函式。

      • options: null | XRSessionInit

        AR啟動選項。

      回傳 void

      var terrainView = new ov.TerrainView("canvas"));
      terrainView.initAR(button, function(){
      console.log("AR");
      //建議關閉外太空,大氣,清除色,避免蓋住相機畫面
      terrainView.enableOuterSpaceBox = false;
      terrainView.enableAtmosphere = false;
      terrainView.backgroundColor = new ov.Color("#00000000");
      },
      {
      requiredFeatures: ["hit-test"], //請求hitTest功能
      optionalFeatures: ["dom-overlay"], //請求dom套疊功能
      domOverlay: {
      root: document.getElementById("MyControl") //設定要套疊在AR上的dom
      }
      });
    • 初始化VR,需在https或localhost下。 如果系統支援VR,按鈕會變得可按。

      參數

      • buttonElement: HTMLButtonElement

        按鈕元件。

      • callback: () => void

        VR啟動後的回呼函式。

      回傳 void

    • 移除XR手把事件。

      類型參數

      • T extends keyof XRGamepadEventMap

      參數

      • type: T
      • param: XRGamepadEventMap[T]

        參數。

      回傳 void

    • 設定模型於ARHitTest平面上,需在初始化時有開啟HitTest。

      參數

      • src: string

        glTF模型來源,如果沒指定會使用預設模型

      • height: number

        離平面高度(m)

      • isAbsHeight: boolean

        是否為絕對高

      回傳 void

    • 設定VR手把板機鍵功能

      參數

      • handedness: "left" | "right"

        手把

      • type: "Teleport" | "Zoom" | "Select"

        板機功能

      回傳 void

    • AR/VR移動到指定的位置。

      參數

      回傳 void

    • AR/VR移動事件監聽器,使用手把傳送或 setXRPosition 會觸發。

      參數

      • callback: () => void

        傳送後的回呼函式。

      回傳 void

    • AR/VR移動到指定的方向

      參數

      回傳 void

    • AR/VR螢幕座標轉地圖座標。

      參數

      • pos: GeoPoint

        螢幕座標。

      • distance: number

        離使用者的距離。

      回傳 null | Geo3DPoint

      地圖座標。

    方法 - 圖台

    • 加入事件監聽器

      類型參數

      參數

      • type: K

        事件名稱,目前支援以下事件

      • listener: TerrainViewEventMap[K]

        事件觸發時要執行的回呼函式。

      回傳 boolean

      是否加入成功。

      let result = terrainView.addEventListener("CameraPosChanged", myCallback);
      
    • 關閉場景視圖,並釋放所有圖層。

      回傳 void

      terrainView.close();
      
    • 取得渲染環境的狀態。

      回傳 { [name: string]: unknown }

      渲染環境的狀態。

    • 地形場景是否開啟成功。

      回傳 boolean

      是否開啟成功。

      let result = terrainView.isOpen();
      
    • 移除事件監聽器。

      類型參數

      參數

      回傳 boolean

      是否移除成功。

      let result = terrainView.removeEventListener("InputCompleted", myCallback);
      
    • 設定程式碼所在路徑。

      參數

      • path: string

        路徑。

      回傳 void

      terrainView.setPath("../webgl/");
      

    方法 - 圖素

    • 清除所有被選取的圖素。

      回傳 void

    • 清除所有被選取的圖素。

      回傳 void

      請使用 clearSelectedEntities

    • 取得所有被選取的圖素。

      回傳 { layer: window.ov.Layer; selectedEntities: number[] }[]

      被選取的圖素及圖層物件。

    • 取得所有被選取的圖素。

      回傳 { Layer: window.ov.Layer; SelectedEntitys: number[] }[]

      被選取的圖素及圖層物件。

      請使用 getSelectedEntities

    • 使用 File 新增Mesh, CFileMesh 不用時需自行呼叫 CFileMesh.Release。

      參數

      • url: string

        ServerUrl。

      • fileObject: File

        File物件。

      • urlTemplate: string

        網址字串模板,可給代理如PROXY_URL/{URL}。

      • callback: (ret: ConditionalResult<{ meshs: CFileMeshCallbackManagerMesh[] }>) => void

        開啟完成後的回呼函式。

      • 可選format: "integrate" | "blob" | "json"

        回呼函式回傳的資料格式。

      回傳 void

    • 在指定的圖層物件上選取或清除選取指定的圖素。

      參數

      • layer: window.ov.Layer

        指定圖層物件。

      • id: number

        指定的圖素Id。

      回傳 void

    方法 - 地形

    • 新增一個固定地形節點Level的範圍。

      參數

      • level: number

        要固定的Level。

      • boundary: GeoBoundary

        範圍。

      回傳 void

    • 取得指定EPSG位置地表的精確高度。

      參數

      • position: GeoPoint

        指定點位置。

      • epsg: number

        指定點的 EPSG。

      回傳 number

      地表的精確高度。

    • 批次取得指定EPSG位置地表的精確高度。

      參數

      • pts: GeoPoint[]

        指定點位置。

      • epsg: number

        指定點的 EPSG。

      回傳 number[]

      地表的精確高度,失敗時回傳空陣列。

    • 取得指定位置地表當前LOD(Level of Detail)的高度。

      參數

      回傳 number

      地表當前LOD的高度。

    • 取得攝影機離當前地面幾何的高度差。

      回傳 number

      離地表的高度。

    • 取得地形節點載入的狀態百分比。

      回傳 number

      地形節點載入的狀態百分比。

    • 開啟地形場景。

      參數

      回傳 boolean

      let param = {
      url: "http://127.0.0.1:8080",
      identifier: "terrainLayerName",
      callback: (layer, success) => {
      if(success) {
      console.log(layer.name);
      }
      }
      };
      terrainView.openTerrain(param);
    • 重新載入同伺服器的另一個地形場景。

      參數

      • identifier: string

        地形圖層名稱。

      • callback: (success: boolean) => void

        執行完成後的回呼函式。

      回傳 boolean

      terrainView.reloadTerrain("terrain", function(success){console.log(success);});
      
    • 清除所有固定地形節點Level的範圍。

      回傳 void

    • 設定地形的作畫設定。

      參數

      回傳 void

      terrainView.setDrawTerrainSetting({
      contourSetting: { isopen: true },
      aspectColorSetting: { isopen: true },
      baseColor: new ov.Color("#FFFFFF"),
      cullingSurface: true,
      surface: true,
      vertexWireframeWithBaseOverlay: true,
      wireframeColor: ov.Color("#FFFFFF"),
      emptyTileImage: "img.png"
      });
    • 設定地形開始淡出淡出參數。

      參數

      • param: { far: number; near: number; useFade: boolean }

        參數。

        • far: number

          完全消失的距離。

        • near: number

          開始淡出的距離。

        • useFade: boolean

          開啟地形淡出淡出。

      回傳 void

    • 是否顯示地形的包圍盒。

      參數

      • show: boolean

        是否顯示。

      回傳 undefined | boolean

      terrainView.showTerrainBoundingVolume(true);  //顯示包圍盒
      terrainView.showTerrainBoundingVolume(false); //關閉顯示包圍盒
    • 將指定螢幕座標轉換成對應的地形位置。

      參數

      • screenPosition: GeoPoint

        指定螢幕座標。

      回傳 boolean

      轉換是否成功。

    • 將指定的世界座標轉換至螢幕座標。

      參數

      • worldPosition: GeoPoint

        指定世界座標。

      • absHeight: boolean

        是否為絕對高度。

      回傳 boolean

      轉換是否成功。

    方法 - 場景效果

    • 設定海平面高度。

      參數

      • seaAltitude: number

        海平面高度。

      回傳 boolean

      是否設定成功。

    • 設定海渲染品質,預設為normal。

      參數

      • seaQuality: "very high" | "high" | "normal" | "low"

      回傳 boolean

      是否設定成功。

    方法 - 快取

    • 刪除所有indexedDB快取

      參數

      • 可選storeName: DBStoreName

        限制刪除的圖層種類,預設刪除所有資料表。

      • 可選callback: (ev: LayerCacheDeletedEvent) => void

        成功刪除callback。

      回傳 void

    • 刪除比指定時間舊的indexedDB快取

      參數

      • time: Date

        時間。

      • 可選storeName: DBStoreName

        限制刪除的圖層種類,預設刪除所有資料表中符合條件的資料。

      • 可選callback: (ev: LayerCacheDeletedEvent) => void

        成功刪除callback。

      回傳 void

    方法 - 控制

    • 設定是否能以鍵盤、滑鼠或觸控操作圖台。

      參數

      • enable: boolean

        是否能以輸入方式操作圖台。

      回傳 void

    • 設定控制面板的參數。

      參數

      回傳 void

      terrainView.panelSetting({
      color: new ov.Color("#00E8E8"),
      offset: new GeoPoint(10, 10),
      posType: POS_TYPE.LT
      });

    方法 - 攝影機

    • 攝影機的方位角開始旋轉。

      參數

      • rotSpeed: number

        旋轉速度(Deg/Sec),正表示順時針,負表示逆時針。

      回傳 void

    • 攝影機開始水平的移動。

      參數

      • speed: number

        縮放速度(畫面/sec),正表示前進,負表示後退。

      • direction: number

        方向角(以自己的北方為0)。

      回傳 void

    • 攝影機的俯仰角開始旋轉。

      參數

      • rotSpeed: number

        旋轉速度(Deg/Sec),正表示越來越垂直,負表示越來越水平。

      回傳 void

    • 攝影機開始縮放。

      參數

      • speed: number

        縮放速度(畫面/sec),正表示前進,負表示後退。

      回傳 void

    • 停止攝影機。

      回傳 void

    • 轉動攝影機面向指定方位。

      參數

      回傳 boolean

    • 轉動攝影機面向指定方位。

      參數

      • azimuthAngle: number

        轉動的目標方位角(度),有效角度為180度至-180度。

      • polarAngle: number

        攝影機V方向與垂直於地面之夾角(度),有效角度為0至180度。

      • 可選timeout: number

        完成轉動的總時間(毫秒)。

      • 可選easing: (t: number) => number

        攝影機轉動的動畫easing函數。

      • 可選onFinish: () => void

        執行完要執行的回呼。

      • 可選onAbort: () => void

        執行被中斷要執行的回呼。

      回傳 boolean

      是否設置成功。

    • 鎖住螢幕中心轉動攝影機面向指定方位。

      參數

      回傳 boolean

    • 鎖住螢幕中心轉動攝影機面向指定方位。

      參數

      • azimuthAngle: number

        轉動的目標方位角(度),有效角度為180度至-180度。

      • polarAngle: number

        攝影機V方向與垂直於地面之夾角(度),有效角度為0至180度。

      • 可選timeout: number

        完成轉動的總時間(毫秒)。

      • 可選easing: (t: number) => number

        攝影機移動的動畫easing函數。

      • 可選onFinish: () => void

        移動完成後執行的回呼。

      • 可選onAbort: () => void

        移動被中斷執行的回呼。

      回傳 boolean

      是否設置成功。

    • 取得圖台水平視野角度(Fov)。

      回傳 number

      圖台水平視野角度(Fov)。

    • 移動至指定位置,單位是圖面坐標。

      參數

      回傳 void

    • 移動至指定位置,單位是圖面坐標。

      參數

      • p: PointLike3D

        要飛到p點。

      • 可選distance: number

        距離。

      • 可選keepPosture: boolean

        代表是否要保持目前姿態。

      • 可選epsg: number

        目標坐標的epsg,若不輸入會將輸入坐標視為與地形同epsg。

      • 可選onFinish: () => void

        移動完成後執行的回呼。

      • 可選onAbort: () => void

        移動被中斷執行的回呼。

      回傳 void

    • 移動至指定位置,並鎖定一個指定中心圍繞旋轉。

      參數

      回傳 void

    • 移動至指定位置,並鎖定一個指定中心圍繞旋轉。

      參數

      • focusPoint: PointLike3D

        要飛到並鎖定中心點。

      • 可選distance: number

        離中心點的距離。

      • 可選focusParam: {
            allowUpdateFocusPoint?: boolean;
            maxDistance?: number;
            maxPolarAngle?: number;
            minDistance?: number;
            minPolarAngle?: number;
        }
      • 可選polarAngle: number

        移動完畢後,攝影機相對中心點的天頂角。

      • 可選azimuthAngle: number

        移動完畢後,攝影機相對中心點的方位角。

      • 可選timeout: number

        完成移動的總時間(毫秒)。

      • 可選epsg: number

        指定focusPoint參數的EPSG。

      • 可選onFinish: () => void

        移動完成後執行的回呼。

      • 可選onAbort: () => void

        移動被中斷執行的回呼。

      回傳 void

      focusParam focus參數。

    • 移動到設定的攝影機位置。

      參數

      回傳 void

    • 移動到設定的攝影機位置。

      參數

      • camera: Camera

        攝影機參數。

      • 可選jump: boolean

        true:跳,false:瞬移。

      • 可選onFinish: () => void

        jump 成功後執行的回呼。

      • 可選onAbort: () => void

        jump 被中斷執行的回呼。

      回傳 void

      let pos = new GeoPoint(120.3, 22.5, 100);
      let v = new Geo3DPoint(0, 0, -1);
      let up = new Geo3DPoint(0, 1, 0);
      let camera = new ov.Camera(pos, v, up);
      terrainView.gotoCamera(camera, true);
    • 設置移動設定。

      參數

      回傳 void

      terrainView.moveFunSetting({ smoothZoom: true });
      
    • 隨機飛到任意點。

      回傳 void

    • 移除移動事件。

      參數

      回傳 void

    • 重設移動模式鍵盤映射。

      回傳 void

    • 重設移動模式滑鼠映射。

      回傳 void

    • 繞著指定坐標維持固定距離旋轉。

      參數

      回傳 void

    • 繞著指定坐標維持固定距離旋轉。

      參數

      • center: PointLike3D

        旋轉的中心點。

      • rotSpeed: number

        旋轉的速率,單位為Deg/Sec。

      • 可選maxRotArg: number

        = 0 最多只旋轉幾度,若0或沒輸入,代表一直旋轉。

      • 可選lookAtCenter: boolean

        = true 旋轉時,是否一直看著中心。

      回傳 void

    • 設定攝影機的方位角。

      參數

      • direction: number

        方向角(以自己的北方為0)。

      回傳 void

    • 設置圖台水平視野角度(Fov)。

      參數

      • horizontalFov: number

        水平視野角度(Field of View)。

      回傳 boolean

      是否設置成功。

    • 設定移動模式鍵盤映射。

      參數

      • keyboardMappingSetting: { [key: string]: string }

        映射設定,使用KeyboardEvent.code。

      回傳 void

      //IJKL分別映射到WASD
      let keyboardMappingSetting = {
      KeyI: "KeyW",
      KeyJ: "KeyA",
      KeyK: "KeyS",
      KeyL: "KeyD",
      };
      terrainView.setKeyboardMapping(keyboardMappingSetting);
    • 設定移動模式滑鼠映射。

      參數

      回傳 void

      //將滑鼠左鍵映射滑鼠右鍵。
      terrainView.setMoveModeMouseMapping(ov.MOUSE_BUTTON.LEFT, ov.MOUSE_BUTTON.RIGHT);
    • 設定禁止通行區域。

      參數

      • polygonSet: GeoPolygonSet

        禁止通行區域幾何,可接受polygonSet array。

      回傳 void

    • 設定攝影機的俯仰角。

      參數

      • vertArg: number

        俯仰角(水平為0,俯正仰負)。

      回傳 void

    • 更新目前操作模式的參數。

      參數

      • param: object

        操作模式的參數,參考 TerrainView.MoveModeOptionsMap

      回傳 void

    方法 - 時間

    • 添加時間事件。

      參數

      回傳 number

      事件編號。

    • 添加定時顯示事件。

      參數

      • start: Date

        開始顯示時間(包含)。

      • end: Date

        結束顯示時間(包含)。

      • showableObj: { show: boolean }

        任何支援show的圖層或實體(ov.TerrainOverlay/ov.Layer/ov.CustomLayer/ov.CustomEntity等)。

      回傳 number

      事件編號。

    • 移除時間事件。

      參數

      • index: number

        事件編號。

      回傳 boolean

      移除是否成功。

    • 開關時間事件。

      參數

      • index: number

        事件編號。

      • enable: boolean

        是否啟用事件。

      回傳 void

    方法 - 測量

    • 中斷測量

      呼叫 OnMeasureCompleted({success:false, length: 0, measureObj:null});。

      回傳 void

    • 清除測量結束產生的作畫。

      回傳 void

    • 設定測量是否比地形晚畫,預設為true。

      參數

      • afterTerrain: boolean

        是否比地形晚畫。

      回傳 void

    • 設定測量用的Epsg,測量的計算上會先轉成此Epsg才計算,不接受4326。

      參數

      • measureEpsg: number

        測量用的Epsg。

      回傳 boolean

      是否設定成功。

    • 設定測量中凍結滑鼠點擊,預設為true。

      參數

      • freeze: boolean

        是否凍結滑鼠點擊。

      回傳 void

    方法 - 渲染

    • 取得畫圖的FPS。

      回傳 number

      畫圖的FPS。

    • 取得正射影像畫面

      參數

      回傳 void

    • 取得畫布的畫面,會引起圖台立刻重新繪製畫面, 並在畫面重新繪製好後返回畫面拷貝的Image物件與DataURL。

      參數

      • callback: (canvasImage: HTMLImageElement, canvasImageDataURL: string) => void

        取得畫面的回呼。

      回傳 void

    • 更新畫面。

      回傳 void

    方法 - 游標

    • 設定游標樣式,若使用url,網址請用雙引號包起來,整組字串請用單引號包起來, 如'url("http://localhost:35727/webgl/texture/red.png") 2 2, pointer'

      參數

      回傳 void

    方法 - 裁切

    • 編輯裁切空間,若還沒有設定過,則會直接完成輸入。

      參數

      回傳 void

    • 移除裁切空間。

      回傳 void

    • 設定裁切空間,會直接清除舊的裁切空間,可作用於ModelLayer、ModelSetLayer、OGCI3SLayer、OGC3DTilesLayer、PhotogrammetryLayer、PipelineLayer、PointCloudLayer。

      參數

      回傳 void

    方法 - 輸入

    • 中斷輸入。

      回傳 void

    • 完成輸入。

      回傳 void

    • 輸入表面點。

      參數

      回傳 void

      terrainView.inputSurfacePoint({
      onCompleted: (event: { success: boolean, geo: GeoPoint }) => {
      if(event.success) console.log(event.geo);
      }
      });

    最佳解說員

    • get showMenu(): boolean

      最佳解說員面板開關狀態,需加入 material-icons.css

      <link href="https://fonts.googleapis.com/icon?family=Material+Icons" rel="stylesheet">
      

      或參照 Google Fonts Material Icons Guide設置離線版本。

      回傳 boolean

    • set showMenu(value: boolean): void

      最佳解說員面板開關狀態

      參數

      • value: boolean

      回傳 void

    構造函數

    • 三維場景視圖

      參數

      • target: string

        綁定的 <div>id

      • 可選options: TerrainViewOptions

        環境的初始化選項。

      回傳 TerrainView

      let terrainView = new ov.TerrainView("canvas", {
      antialias: true,
      transparentBackground: false,
      showSun: true,
      showOuterSpaceBox: true,
      showAtmosphere: true,
      outputSelectMap: true,
      outputDepthMap: true,
      backgroundColor: new ov.Color("#FFFFFF"),
      webglImage: url
      });

    模組

    • 載入模組並取得手柄。

      類型參數

      參數

      • name: T

        模組名稱。

      回傳 OViewModuleMap[T]

      模組手柄。

    • 載入自訂模組並取得手柄。

      參數

      • name: string

        模組名稱。

      回傳 Module

      模組手柄。

    • 設定圖台畫面扭曲參數。

      參數

      回傳 void

    疊加圖層

    • 新增疊加圖層切窗視窗。

      參數

      • param: { height: number; left: number; name: string; top: number; width: number }

        參數。

        • height: number

          視窗長(0.0~1.0)。

        • left: number

          距離左側邊界(0.0~1.0)。

        • name: string

          視窗名稱。

        • top: number

          距離上方邊界(0.0~1.0)。

        • width: number

          視窗寬(0.0~1.0)。

      回傳 undefined | window.ov.OverlayWindow

      疊加圖層切窗視窗物件。

    • 參數

      回傳 null | window.ov.TerrainVectorTileOverlay

      圖層物件,若加入失敗則為null。

      terrainView.addTerrainVectorTileOverlay({
      url: "http://127.0.0.1:8080/3857/TEST_VECTORTILE/{z}/{x}/{y}.vector.mvt",
      layername: "test_vt",
      minLevel: 9,
      maxLevel: 30,
      opacity: 1.0,
      isGeoJson: false,
      pointSetting: {
      textLabel: "show_text_label",
      fontLabel: "show_font_label",
      fadeEffect: true,
      allowOverlapping: false,
      groundLineColor: new ov.Color("#FF0000"),
      fontTable: {
      DEFAULT: {
      font: "微軟正黑體",
      fontSize: 16,
      fontColor: "#e0e0e0",
      fontBorderSize: 3,
      fontBorderColor: "#000000",
      pullUpY: 0,
      pullUpYUnit: 0,
      },
      text_label_1:{
      font: "微軟正黑體",
      fontSize: 20,
      fontColor: "#d0d000",
      fontBorderSize: 5,
      fontBorderColor: "#000000",
      pullUpY: 400
      }
      }
      },
      polylineSetting:{
      colorLabel: "show_color_label",
      realWorldWidth: false,
      simpleDraw: false,
      fadeEffect: true,
      colorTable: {
      DEFAULT: {
      color: "#e0e0e080"
      },
      color_label_1: {
      color: "#e0e00080"
      }
      }
      },
      polygonSetting: {
      colorLabel:"show_color_label",
      colorTable: {
      DEFAULT: {
      fillColor: "#ffffff80",
      boundaryColor: "#000000ff",
      boundaryWidth: 2
      },
      color_label_2: {
      fillColor: "#d0d000d0",
      boundaryColor: "#ff0000ff",
      boundaryWidth: 2
      }
      }
      }
      }, console.log);
    • 回傳所有疊加圖層切窗視窗。

      回傳 window.ov.OverlayWindow[]

      所有疊加圖層切窗視窗物件。

    • 回傳指定索引或名稱疊加圖層切窗視窗。

      參數

      • index: string | number

        索引值或名稱。

      回傳 undefined | window.ov.OverlayWindow

      疊加圖層切窗視窗物件。

    • 回傳所有疊加圖層切窗視窗。

      參數

      • 可選index: string | number

      回傳 undefined | window.ov.OverlayWindow | window.ov.OverlayWindow[]

      所有疊加圖層切窗視窗物件。

    • 取得地形 的 疊加圖層

      回傳 window.ov.TerrainOverlay[]

      疊加圖層。

      terrainView.getTerrainOverlay(0);            // 取得第1個疊加圖層
      terrainView.getTerrainOverlay("Taiwan3857"); // 取得指定疊加圖層
      terrainView.getTerrainOverlay(); // 全部拿回來
    • 取得地形 的 疊加圖層

      參數

      • index: string | number

        索引或圖層名稱。

      回傳 undefined | window.ov.TerrainOverlay

      疊加圖層。

      terrainView.getTerrainOverlay(0);            // 取得第1個疊加圖層
      terrainView.getTerrainOverlay("Taiwan3857"); // 取得指定疊加圖層
      terrainView.getTerrainOverlay(); // 全部拿回來
    • 取得地形 的 疊加圖層

      參數

      • 可選index: string | number

        索引或圖層名稱。

      回傳 undefined | window.ov.TerrainOverlay | window.ov.TerrainOverlay[]

      疊加圖層。

      terrainView.getTerrainOverlay(0);            // 取得第1個疊加圖層
      terrainView.getTerrainOverlay("Taiwan3857"); // 取得指定疊加圖層
      terrainView.getTerrainOverlay(); // 全部拿回來
    • 取得可視化資料網格資料參數epsg轉換所需資訊

      參數

      • setting: {
            boundary: GeoBoundary;
            epsg: number;
            height: number;
            width: number;
            sampleRatio?: number;
        }

        參數物件。

        • boundary: GeoBoundary

          資料所在範圍。

        • epsg: number

          此資料範圍的EPSG。

        • height: number

          資料高。

        • width: number

          資料寬。

        • 可選sampleRatio?: number

          1.0 取樣比例,建議使用預設1.0或依照取樣定理設為2.0,越大處理時間越長。

      回傳 {
          boundary: GeoBoundary;
          height: number;
          indexesX: Float32Array<ArrayBuffer>;
          indexesY: Float32Array<ArrayBuffer>;
          width: number;
      }

      資訊物件,內含轉換過後新的boundary、Width、Height與資料位置對照資訊。

    • 移動地形的Overlay的順序,注意移動非交換,其餘圖層會保持原順序排列,如[0, 1, 2]->[2, 0, 1],若失敗則不移動。

      參數

      • oldIndex: string | number

        原本的index,也可以給圖層名稱當作索引。

      • newIndex: string | number

        新的index,也可以給圖層名稱當作索引。

      回傳 boolean

      是否成功。

    • 正規化可視化資料網格參數,將會把可視化資料網格的資料轉換到系統需要的4326座標

      參數

      • setting: {
            boundary: GeoBoundary;
            epsg: number;
            height: number;
            source: Float32Array<ArrayBufferLike>[];
            width: number;
            flipY?: boolean;
            liftSource?: Float32Array<ArrayBufferLike>[];
            noDataValue?: number;
        }

        參數物件。

        • boundary: GeoBoundary

          圖層資料位置。

        • epsg: number

          參數物件。

        • height: number

          資料高。

        • source: Float32Array<ArrayBufferLike>[]

          參數物件。

        • width: number

          資料寬。

        • 可選flipY?: boolean

          資料源是否翻轉Y軸。

        • 可選liftSource?: Float32Array<ArrayBufferLike>[]

          圖層抬升資料位置。

        • 可選noDataValue?: number

          空資料數值。

      • info: {
            boundary: GeoBoundary;
            height: number;
            indexesX: Float32Array<ArrayBuffer>;
            indexesY: Float32Array<ArrayBuffer>;
            width: number;
        }

        轉換資訊。

      回傳 void

    • 強制重新載入地形的疊加圖層紋理。

      參數

      • index: string | number

        index或圖層名稱。

      回傳 void

      是否成功。

      terrainView.reloadTerrainOverlay(0);            // 重新載入第1個疊加圖層
      terrainView.reloadTerrainOverlay("Taiwan3857"); // 重新載入指定疊加圖層
      terrainView.reloadTerrainOverlay(); // 全部重載
    • 移除指定疊加圖層切窗視窗。

      參數

      回傳 void

    • 移除地形的疊加圖層,會造成後面的圖層往前移。

      參數

      回傳 boolean

      是否成功。

      terrainView.removeTerrainOverlay(0);            // 移除第1個疊加圖層
      terrainView.removeTerrainOverlay("Taiwan3857"); // 移除指定疊加圖層
      terrainView.removeTerrainOverlay(overlay); // 移除指定疊加圖層
      terrainView.removeTerrainOverlay(); // 全部移除
    • 設置有隱藏條件的向量圖層(例:行政區圖層)。

      參數

      回傳 void

      let setting = {
      url: "http://127.0.0.1:8080",
      drawColor: new ov.Color("#FF0000FF"), //紅色
      fillColor: new ov.Color("#FFFF00FF"), //黃色
      layerName: "town", //全台灣行政區圖
      sql: "COUNTYNAME!='桃園市'", //桃園市以外全部隱藏
      };
      terrainView.setConditionForHideOverlayLayer(setting);
    • 設置條件式向量圖層。

      參數

      • setting: {
            drawColor: string;
            fillColor: string;
            layerName: string;
            url: string;
            conditions?: { SQL: string; [setting: string]: string }[];
            extraSettings?: { [setting: string]: string };
        }

        參數物件。

        • drawColor: string

          外框線顏色(#argb)。

        • fillColor: string

          內部填滿色(#argb)。

        • layerName: string

          在MapServer上圖層的名稱。

        • url: string

          MapServer網址。

        • 可選conditions?: { SQL: string; [setting: string]: string }[]

          條件陣列(參數可參考MapServer上向量圖層的條件設定)。

        • 可選extraSettings?: { [setting: string]: string }

          上述沒包含的參數,放此物件上(例:setting.extraSettings.LineWidth = "2")。

      • callback: (ev: OverlayAddedEvent) => void

        執行完成後的回呼。

      回傳 void

      let setting = {
      url: "http://127.0.0.1:8080",
      layerName: "town",
      drawColor: "#FFFF0000", //紅色
      fillColor: "#FFFFFF00", //黃色
      extraSettings: {
      LineWidth: "2"
      },
      conditions: [
      //1.將臺中市以外隱藏
      { SQL: "COUNTYNAME !='臺中市'", Show: "0" },
      //2.將西屯區設為綠色
      { SQL: "TOWNNAME = '西屯區'", FillColor: "#FF00FF00" },
      //3.將南屯區設為紅色
      { SQL: "TOWNNAME = '南屯區'", FillColor: "#FF0000FF" }
      ]
      }
      terrainView.setConditionOverlayLayer(setting);
    • 交換地形的疊加圖層的順序,若失敗則不交換。

      參數

      • firstIndex: string | number

        第一個圖層的index,也可以給圖層名稱當作索引。

      • secondIndex: string | number

        第二個圖層的index,也可以給圖層名稱當作索引。

      回傳 boolean

      是否成功。

    訪問器屬性 - 圖台

    • get canvas(): HTMLCanvasElement

      圖台畫布

      回傳 HTMLCanvasElement

    訪問器屬性 - 地形

    • get isSpherical(): boolean

      是否為球體

      回傳 boolean

    • get name(): string

      取得地形圖層名稱

      回傳 string

    • get sphericalEpsg(): number

      球體的 EPSG

      回傳 number

    • get terrainAlpha(): number

      地形不透明度 (預設1.0,介於 0~1.0)

      回傳 number

    • set terrainAlpha(value: number): void

      地形不透明度 (預設1.0,介於 0~1.0)

      參數

      • value: number

      回傳 void

    • get terrainEpsg(): number

      地形的原始 EPSG

      回傳 number

    • get terrainHitTestOpacityThreshold(): number

      地形可以被HitTest的最小不透明度閾值 (預設0.9,介於0 ~ 1.0),若地形不透明度低於此值,則引擎允許點擊地形下的三角面。

      回傳 number

    • set terrainHitTestOpacityThreshold(value: number): void

      地形可以被HitTest的最小不透明度閾值 (預設0.9,介於0 ~ 1.0),若地形不透明度低於此值,則引擎允許點擊地形下的三角面。

      參數

      • value: number

      回傳 void

    • get url(): string

      地形圖層連結

      回傳 string

    訪問器屬性 - 場景效果

    • get backgroundColor(): window.ov.Color

      背景顏色

      回傳 window.ov.Color

    • set backgroundColor(value: window.ov.Color): void

      背景顏色

      參數

      回傳 void

    • get cloudProperty(): CloudProperty

      雲的特性。

      回傳 CloudProperty

    • set cloudProperty(value: CloudProperty): void

      雲的特性。

      參數

      回傳 void

    • get enableAtmoSky(): boolean

      是否畫天空大氣,預設為開

      回傳 boolean

    • set enableAtmoSky(value: boolean): void

      是否畫天空大氣,預設為開

      參數

      • value: boolean

      回傳 void

    • get enableAtmosphere(): boolean

      大氣的開關

      回傳 boolean

    • set enableAtmosphere(value: boolean): void

      大氣的開關

      參數

      • value: boolean

      回傳 void

    • get enableCloud(): boolean

      是否畫雲,預設為關。

      回傳 boolean

    • set enableCloud(value: boolean): void

      是否畫雲,預設為關。

      參數

      • value: boolean

      回傳 void

    • get enableLight(): boolean

      光線的開關

      回傳 boolean

    • set enableLight(value: boolean): void

      光線的開關

      參數

      • value: boolean

      回傳 void

    • get enableOuterSpaceBox(): boolean

      外太空的開關

      回傳 boolean

    • set enableOuterSpaceBox(value: boolean): void

      外太空的開關

      參數

      • value: boolean

      回傳 void

    • get enableSea(): boolean

      是否畫海洋,預設為關

      回傳 boolean

    • set enableSea(value: boolean): void

      是否畫海洋,預設為關

      參數

      • value: boolean

      回傳 void

    • get enableShadow(): boolean

      陰影的開關

      回傳 boolean

    • set enableShadow(value: boolean): void

      陰影的開關

      參數

      • value: boolean

      回傳 void

    • get enableSun(): boolean

      是否畫太陽貼圖,預設為開

      回傳 boolean

    • set enableSun(value: boolean): void

      是否畫太陽貼圖,預設為開

      參數

      • value: boolean

      回傳 void

    • get enableVolumetricLightScattering(): boolean

      是否開啟體積光散射,預設為關

      回傳 boolean

    • set enableVolumetricLightScattering(value: boolean): void

      是否開啟體積光散射,預設為關

      參數

      • value: boolean

      回傳 void

    • get lightProperty(): LightProperty

      光線的特性

      回傳 LightProperty

    • set lightProperty(value: LightProperty): void

      光線的特性

      參數

      回傳 void

    訪問器屬性 - 控制

    • get controlPanel(): boolean

      是否顯示控制面板

      回傳 boolean

    • get freezeKeyboard(): boolean

      凍結鍵盤控制

      回傳 boolean

    • set freezeKeyboard(value: boolean): void

      凍結鍵盤控制

      參數

      • value: boolean

      回傳 void

    • get freezeMouse(): boolean

      凍結滑鼠控制(只能用控制攝影機的方式處理) *

      回傳 boolean

    • set freezeMouse(value: boolean): void

      凍結滑鼠控制(只能用控制攝影機的方式處理)

      參數

      • value: boolean

      回傳 void

    • get freezeUserControl(): boolean

      凍結使用者輸入控制對Viewport的控制(凍結滑鼠與鍵盤)

      回傳 boolean

    • set freezeUserControl(value: boolean): void

      凍結使用者輸入控制對Viewport的控制(凍結滑鼠與鍵盤) *

      參數

      • value: boolean

      回傳 void

    訪問器屬性 - 攝影機

    • get camera(): Camera

      取得目前攝影機姿態

      回傳 Camera

    • get minHeightAboveGround(): number

      最小的離地表高度

      初始化時,系統會依據地形影像的解析度來決定,使用者可於初始化後自行設定

      回傳 number

    • set minHeightAboveGround(value: number): void

      最小的離地表高度

      初始化時,系統會依據地形影像的解析度來決定,使用者可於初始化後自行設定

      參數

      • value: number

      回傳 void

    • get moveMode(): MOVE_MODE

      移動模式:如面板模式、滑鼠模式、旋轉模式等...

      回傳 MOVE_MODE

    • set moveMode(value: MOVE_MODE): void

      移動模式:如面板模式、滑鼠模式、旋轉模式等...

      參數

      • value: MOVE_MODE

      回傳 void

    • get projectionMode(): PROJECTION_TYPE
      實驗性

      攝影機投影模式

      回傳 PROJECTION_TYPE

    • set projectionMode(value: PROJECTION_TYPE): void
      實驗性

      攝影機投影模式

      參數

      回傳 void

    • get throughSurface(): boolean

      是否能穿越地表

      回傳 boolean

    • set throughSurface(value: boolean): void

      是否能穿越地表

      參數

      • value: boolean

      回傳 void

    訪問器屬性 - 時間

    • get date(): Date

      時間戳

      回傳 Date

    • set date(value: Date): void

      時間戳

      參數

      • value: Date

      回傳 void

    訪問器屬性 - 渲染

    • get enableDrawLightDirectionSketchMap(): boolean

      是否在場景中畫光線方向圖

      回傳 boolean

    • set enableDrawLightDirectionSketchMap(value: boolean): void

      是否在場景中畫光線方向圖

      參數

      • value: boolean

      回傳 void

    • get enableLogarithmicDepthBuffer(): boolean

      是否啟用對數深度緩衝。 可以看得更遠,但會失去抗鋸齒效果、降低效能。

      回傳 boolean

    • set enableLogarithmicDepthBuffer(value: boolean): void

      是否啟用對數深度緩衝。 可以看得更遠,但會失去抗鋸齒效果、降低效能。

      參數

      • value: boolean

      回傳 void

    • get freezeUpdate(): boolean

      凍結畫面更新

      回傳 boolean

    • set freezeUpdate(value: boolean): void

      凍結畫面更新

      參數

      • value: boolean

      回傳 void

    • get keepDraw(): boolean

      是否保持作畫,不會休息(預設為false若無變更就不會重新作畫)

      回傳 boolean

    • set keepDraw(value: boolean): void

      是否保持作畫,不會休息(預設為false若無變更就不會重新作畫)

      參數

      • value: boolean

      回傳 void

    • get maxVisualDistance(): number

      最大虛擬可視距離 (單位: 公尺),用於顯示太遠的物件,預設為 0 (自動控制)

      回傳 number

    • set maxVisualDistance(value: number): void

      最大虛擬可視距離 (單位: 公尺),用於顯示太遠的物件,預設為 0 (自動控制)

      參數

      • value: number

      回傳 void

    訪問器屬性 - 游標

    • get cursor(): string

      目前滑鼠的預設游標樣式

      回傳 string

    • set cursor(value: string): void

      目前滑鼠的預設游標樣式

      參數

      • value: string

      回傳 void

    • get cursorSetting(): CursorSettingProperty

      目前滑鼠的游標樣式設定

      回傳 CursorSettingProperty

    • set cursorSetting(value: CursorSettingProperty): void

      目前滑鼠的游標樣式設定

      參數

      • value: CursorSettingProperty

      回傳 void

    訪問器屬性 - 輸入

    • get mousePos(): null | GeoPoint

      目前滑鼠的坐標,單位為Map

      回傳 null | GeoPoint