三維場景視圖

Accessors - 圖台

Accessors - 地形

Accessors - 場景效果

Accessors - 控制

Accessors - 攝影機

Accessors - 時間

Accessors - 渲染

Accessors - 游標

Accessors - 輸入

Constructors

Methods - KML

Methods - Other

Methods - XR

Methods - 圖台

Methods - 圖素

Methods - 地形

Methods - 場景效果

Methods - 快取

Methods - 控制

Methods - 攝影機

Methods - 時間

Methods - 測量

Methods - 渲染

Methods - 游標

Methods - 裁切

Methods - 輸入

UI

圖層

最佳解說員

模組

疊加圖層

Accessors - 圖台

  • get canvas(): HTMLCanvasElement
  • 圖台畫布

    Returns HTMLCanvasElement

Accessors - 地形

  • get isSpherical(): boolean
  • 是否為球體

    Returns boolean

  • get name(): string
  • 取得地形圖層名稱

    Returns string

  • get sphericalEpsg(): number
  • 球體的 EPSG

    Returns number

  • get terrainAlpha(): number
  • 地形不透明度 (預設1.0,介於 0~1.0)

    Returns number

  • set terrainAlpha(value): void
  • 地形不透明度 (預設1.0,介於 0~1.0)

    Parameters

    • value: number

    Returns void

  • get terrainEpsg(): number
  • 地形的原始 EPSG

    Returns number

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

    Returns number

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

    Parameters

    • value: number

    Returns void

  • get url(): string
  • 地形圖層連結

    Returns string

Accessors - 場景效果

  • get backgroundColor(): ov.Color
  • 背景顏色

    Returns ov.Color

  • set backgroundColor(value): void
  • 背景顏色

    Parameters

    Returns void

  • get cloudProperty(): CloudProperty
  • 雲的特性。

    Returns CloudProperty

  • set cloudProperty(value): void
  • 雲的特性。

    Parameters

    Returns void

  • get enableAtmoSky(): boolean
  • 是否畫天空大氣,預設為開

    Returns boolean

  • set enableAtmoSky(value): void
  • 是否畫天空大氣,預設為開

    Parameters

    • value: boolean

    Returns void

  • get enableAtmosphere(): boolean
  • 大氣的開關

    Returns boolean

  • set enableAtmosphere(value): void
  • 大氣的開關

    Parameters

    • value: boolean

    Returns void

  • get enableCloud(): boolean
  • 是否畫雲,預設為關。

    Returns boolean

  • set enableCloud(value): void
  • 是否畫雲,預設為關。

    Parameters

    • value: boolean

    Returns void

  • get enableLight(): boolean
  • 光線的開關

    Returns boolean

  • set enableLight(value): void
  • 光線的開關

    Parameters

    • value: boolean

    Returns void

  • get enableOuterSpaceBox(): boolean
  • 外太空的開關

    Returns boolean

  • set enableOuterSpaceBox(value): void
  • 外太空的開關

    Parameters

    • value: boolean

    Returns void

  • get enableSea(): boolean
  • 是否畫海洋,預設為關

    Returns boolean

  • set enableSea(value): void
  • 是否畫海洋,預設為關

    Parameters

    • value: boolean

    Returns void

  • get enableShadow(): boolean
  • 陰影的開關

    Returns boolean

  • set enableShadow(value): void
  • 陰影的開關

    Parameters

    • value: boolean

    Returns void

  • get enableSun(): boolean
  • 是否畫太陽貼圖,預設為開

    Returns boolean

  • set enableSun(value): void
  • 是否畫太陽貼圖,預設為開

    Parameters

    • value: boolean

    Returns void

  • get enableVolumetricLightScattering(): boolean
  • 是否開啟體積光散射,預設為關

    Returns boolean

  • set enableVolumetricLightScattering(value): void
  • 是否開啟體積光散射,預設為關

    Parameters

    • value: boolean

    Returns void

  • get lightProperty(): LightProperty
  • 光線的特性

    Returns LightProperty

  • set lightProperty(value): void
  • 光線的特性

    Parameters

    Returns void

Accessors - 控制

  • get controlPanel(): boolean
  • 是否顯示控制面板

    Returns boolean

  • get freezeKeyboard(): boolean
  • 凍結鍵盤控制

    Returns boolean

  • set freezeKeyboard(value): void
  • 凍結鍵盤控制

    Parameters

    • value: boolean

    Returns void

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

    Returns boolean

  • set freezeMouse(value): void
  • 凍結滑鼠控制(只能用控制攝影機的方式處理)

    Parameters

    • value: boolean

    Returns void

  • get freezeUserControl(): boolean
  • 凍結使用者輸入控制對Viewport的控制(凍結滑鼠與鍵盤)

    Returns boolean

  • set freezeUserControl(value): void
  • 凍結使用者輸入控制對Viewport的控制(凍結滑鼠與鍵盤) *

    Parameters

    • value: boolean

    Returns void

Accessors - 攝影機

  • get camera(): Camera
  • 取得目前攝影機姿態

    Returns Camera

  • get minHeightAboveGround(): number
  • 最小的離地表高度

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

    Returns number

  • set minHeightAboveGround(value): void
  • 最小的離地表高度

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

    Parameters

    • value: number

    Returns void

  • get moveMode(): MOVE_MODE
  • 移動模式:如面板模式、滑鼠模式、旋轉模式等...

    Returns MOVE_MODE

  • set moveMode(value): void
  • 移動模式:如面板模式、滑鼠模式、旋轉模式等...

    Parameters

    • value: MOVE_MODE

    Returns void

  • get projectionMode(): PROJECTION_TYPE
  • Experimental

    攝影機投影模式

    Returns PROJECTION_TYPE

  • set projectionMode(value): void
  • Experimental

    攝影機投影模式

    Parameters

    Returns void

  • get throughSurface(): boolean
  • 是否能穿越地表

    Returns boolean

  • set throughSurface(value): void
  • 是否能穿越地表

    Parameters

    • value: boolean

    Returns void

Accessors - 時間

  • get date(): Date
  • 時間戳

    Returns Date

  • set date(value): void
  • 時間戳

    Parameters

    • value: Date

    Returns void

Accessors - 渲染

  • get enableDrawLightDirectionSketchMap(): boolean
  • 是否在場景中畫光線方向圖

    Returns boolean

  • set enableDrawLightDirectionSketchMap(value): void
  • 是否在場景中畫光線方向圖

    Parameters

    • value: boolean

    Returns void

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

    Returns boolean

  • set enableLogarithmicDepthBuffer(value): void
  • 是否啟用對數深度緩衝。 可以看得更遠,但會失去抗鋸齒效果、降低效能。

    Parameters

    • value: boolean

    Returns void

  • get freezeUpdate(): boolean
  • 凍結畫面更新

    Returns boolean

  • set freezeUpdate(value): void
  • 凍結畫面更新

    Parameters

    • value: boolean

    Returns void

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

    Returns boolean

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

    Parameters

    • value: boolean

    Returns void

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

    Returns number

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

    Parameters

    • value: number

    Returns void

Accessors - 游標

  • get cursor(): string
  • 目前滑鼠的預設游標樣式

    Returns string

  • set cursor(value): void
  • 目前滑鼠的預設游標樣式

    Parameters

    • value: string

    Returns void

  • get cursorSetting(): CursorSettingProperty
  • 目前滑鼠的游標樣式設定

    Returns CursorSettingProperty

  • set cursorSetting(value): void
  • 目前滑鼠的游標樣式設定

    Parameters

    • value: CursorSettingProperty

    Returns void

Accessors - 輸入

  • get mousePos(): null | GeoPoint
  • 目前滑鼠的坐標,單位為Map

    Returns null | GeoPoint

Constructors

  • 三維場景視圖

    Parameters

    • target: string

      綁定的 <div>id

    • Optional options: TerrainViewOptions

      環境的初始化選項。

    Returns TerrainView

    Example

    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
    });

Methods - KML

  • 新增KML場景。

    Parameters

    • param: {
          name: string;
      }

      參數。

      • name: string

        場景名稱。

    Returns KMLScene

    KML場景。

  • 取得所有KML場景。

    Returns KMLScene[]

    KML場景。

  • 匯入KML。

    Parameters

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

      參數。

      • callback: ((scene) => void)
          • (scene): void
          • 完成後的回呼函式。

            Parameters

            Returns void

      • url: string

        kml位址

      • Optional name?: string

        場景名稱。

    Returns void

  • 移除指定KML場景。

    Parameters

    Returns boolean

    是否移除成功。

Methods - Other

  • 執行圖台指令

    Type Parameters

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

    Parameters

    Returns void

  • 取得XR手把射線顏色。

    Returns ov.Color

    射線顏色。

  • 取得XR手把射線長度。

    Returns number

    設線長度。

  • 移除所有XR手把事件。

    Returns void

  • Experimental

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

    Parameters

    Returns void

  • 設定XR手把射線顏色。

    Parameters

    Returns void

  • 設定XR手把射線長度。

    Parameters

    • length: number

      設線長度。

    Returns void

  • 更新XR參數設定。

    Parameters

    Returns void

Methods - XR

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

    Parameters

    • customEntity: CustomEntity

      自畫圖素。

    • position: Geo3DPoint

      相對頭盔的位置。

    • geoParam: string

      位置的參數名稱。

    • isFixed: boolean

      位置方位是否固定。

    Returns void

  • 加入一個VR UI容器。

    Parameters

    Returns void

  • 新增XR手把事件。

    Type Parameters

    Parameters

    Returns void

  • 關閉VR。

    Returns void

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

    Returns void

  • 取得AR的模型,需在初始化時有開啟HitTest。

    Returns null | CustomGLTFEntity

    加入的模型

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

    Returns CRect

    viewport。

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

    Parameters

    • buttonElement: HTMLButtonElement

      按鈕元件。

    • callback: (() => void)

      AR啟動後的回呼函式。

        • (): void
        • Returns void

    • options: null | XRSessionInit

      AR啟動選項。

    Returns void

    Example

    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,按鈕會變得可按。

    Parameters

    • buttonElement: HTMLButtonElement

      按鈕元件。

    • callback: (() => void)

      VR啟動後的回呼函式。

        • (): void
        • Returns void

    Returns void

  • 移除XR手把事件。

    Type Parameters

    Parameters

    Returns void

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

    Parameters

    • src: string

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

    • height: number

      離平面高度(m)

    • isAbsHeight: boolean

      是否為絕對高

    Returns void

  • 設定VR手把板機鍵功能

    Parameters

    • handedness: "left" | "right"

      手把

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

      板機功能

    Returns void

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

    Parameters

    Returns void

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

    Parameters

    • callback: (() => void)

      傳送後的回呼函式。

        • (): void
        • Returns void

    Returns void

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

    Parameters

    Returns void

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

    Parameters

    • pos: GeoPoint

      螢幕座標。

    • distance: number

      離使用者的距離。

    Returns null | Geo3DPoint

    地圖座標。

Methods - 圖台

  • 加入事件監聽器

    Type Parameters

    Parameters

    • type: K

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

    • listener: TerrainViewEventMap[K]

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

    Returns boolean

    是否加入成功。

    Example

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

    Returns void

    Example

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

    Returns {
        [name: string]: any;
    }

    渲染環境的狀態。

    • [name: string]: any
  • 地形場景是否開啟成功。

    Returns boolean

    是否開啟成功。

    Example

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

    Type Parameters

    Parameters

    Returns boolean

    是否移除成功。

    Example

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

    Parameters

    • path: string

      路徑。

    Returns void

    Example

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

Methods - 圖素

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

    Returns void

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

    Returns void

    Deprecated

    請使用 clearSelectedEntities

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

    Returns {
        layer: ov.Layer;
        selectedEntities: number[];
    }[]

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

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

    Returns {
        Layer: ov.Layer;
        SelectedEntitys: number[];
    }[]

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

    Deprecated

    請使用 getSelectedEntities

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

    Parameters

    • url: string

      ServerUrl。

    • fileObject: File

      File物件。

    • urlTemplate: string

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

    • callback: ((ret) => void)

      開啟完成後的回呼函式。

        • (ret): void
        • Parameters

          Returns void

    • Optional format: "integrate" | "blob" | "json"

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

    Returns void

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

    Parameters

    • layer: ov.Layer

      指定圖層物件。

    • id: number

      指定的圖素Id。

    Returns void

Methods - 地形

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

    Parameters

    • level: number

      要固定的Level。

    • boundary: GeoBoundary

      範圍。

    Returns void

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

    Parameters

    • position: GeoPoint

      指定點位置。

    • epsg: number

      指定點的 EPSG。

    Returns number

    地表的精確高度。

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

    Parameters

    • pts: GeoPoint[]

      指定點位置。

    • epsg: number

      指定點的 EPSG。

    Returns number[]

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

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

    Parameters

    Returns number

    地表當前LOD的高度。

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

    Returns number

    離地表的高度。

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

    Returns number

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

  • 開啟地形場景。

    Parameters

    Returns boolean

    Example

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

    Parameters

    • identifier: string

      地形圖層名稱。

    • callback: ReloadTerrainCallback

      執行完成後的回呼函式。

    Returns boolean

    Example

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

    Returns void

  • 設定地形的作畫設定。

    Parameters

    Returns void

    Example

    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"
    });
  • 設定地形開始淡出淡出參數。

    Parameters

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

      參數。

      • far: number

        完全消失的距離。

      • near: number

        開始淡出的距離。

      • useFade: boolean

        開啟地形淡出淡出。

    Returns void

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

    Parameters

    • show: boolean

      是否顯示。

    Returns undefined | boolean

    Example

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

    Parameters

    • screenPosition: GeoPoint

      指定螢幕座標。

    Returns boolean

    轉換是否成功。

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

    Parameters

    • worldPosition: GeoPoint

      指定世界座標。

    • absHeight: boolean

      是否為絕對高度。

    Returns boolean

    轉換是否成功。

Methods - 場景效果

  • 設定海平面高度。

    Parameters

    • seaAltitude: number

      海平面高度。

    Returns boolean

    是否設定成功。

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

    Parameters

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

    Returns boolean

    是否設定成功。

Methods - 快取

  • 刪除所有indexedDB快取

    Parameters

    Returns void

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

    Parameters

    • time: Date

      時間。

    • Optional storeName: DBStoreName

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

    • Optional callback: DeleteLayerCacheCallback

      成功刪除callback。

    Returns void

Methods - 控制

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

    Parameters

    • enable: boolean

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

    Returns void

  • 設定控制面板的參數。

    Parameters

    Returns void

    Example

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

Methods - 攝影機

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

    Parameters

    • rotSpeed: number

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

    Returns void

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

    Parameters

    • speed: number

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

    • direction: number

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

    Returns void

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

    Parameters

    • rotSpeed: number

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

    Returns void

  • 攝影機開始縮放。

    Parameters

    • speed: number

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

    Returns void

  • 停止攝影機。

    Returns void

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

    Parameters

    Returns boolean

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

    Parameters

    • azimuthAngle: number

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

    • polarAngle: number

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

    • Optional timeout: number

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

    • Optional easing: ((t) => number)

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

        • (t): number
        • Parameters

          • t: number

          Returns number

    • Optional onFinish: (() => void)

      執行完要執行的回呼。

        • (): void
        • Returns void

    • Optional onAbort: (() => void)

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

        • (): void
        • Returns void

    Returns boolean

    是否設置成功。

    Deprecated

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

    Parameters

    Returns boolean

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

    Parameters

    • azimuthAngle: number

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

    • polarAngle: number

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

    • Optional timeout: number

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

    • Optional easing: ((t) => number)

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

        • (t): number
        • Parameters

          • t: number

          Returns number

    • Optional onFinish: (() => void)

      移動完成後執行的回呼。

        • (): void
        • Returns void

    • Optional onAbort: (() => void)

      移動被中斷執行的回呼。

        • (): void
        • Returns void

    Returns boolean

    是否設置成功。

    Deprecated

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

    Returns number

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

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

    Parameters

    Returns void

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

    Parameters

    • p: PointLike3D

      要飛到p點。

    • Optional distance: number

      距離。

    • Optional keepPosture: boolean

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

    • Optional epsg: number

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

    • Optional onFinish: (() => void)

      移動完成後執行的回呼。

        • (): void
        • Returns void

    • Optional onAbort: (() => void)

      移動被中斷執行的回呼。

        • (): void
        • Returns void

    Returns void

    Deprecated

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

    Parameters

    Returns void

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

    Parameters

    • focusPoint: PointLike3D

      要飛到並鎖定中心點。

    • Optional distance: number

      離中心點的距離。

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

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

    • Optional azimuthAngle: number

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

    • Optional timeout: number

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

    • Optional epsg: number

      指定focusPoint參數的EPSG。

    • Optional onFinish: (() => void)

      移動完成後執行的回呼。

        • (): void
        • Returns void

    • Optional onAbort: (() => void)

      移動被中斷執行的回呼。

        • (): void
        • Returns void

    Returns void

    Focus Param

    focusParam focus參數。

    Deprecated

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

    Parameters

    Returns void

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

    Parameters

    • camera: Camera

      攝影機參數。

    • Optional jump: boolean

      true:跳,false:瞬移。

    • Optional onFinish: (() => void)

      jump 成功後執行的回呼。

        • (): void
        • Returns void

    • Optional onAbort: (() => void)

      jump 被中斷執行的回呼。

        • (): void
        • Returns void

    Returns void

    Deprecated

    Example

    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);
  • 設置移動設定。

    Parameters

    Returns void

    Example

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

    Returns void

  • 移除移動事件。

    Parameters

    • moveEvent: MoveEvent

      欲移除的移動事件。

    Returns void

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

    Returns void

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

    Returns void

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

    Parameters

    Returns void

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

    Parameters

    • center: PointLike3D

      旋轉的中心點。

    • rotSpeed: number

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

    • Optional maxRotArg: number

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

    • Optional lookAtCenter: boolean

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

    Returns void

    Deprecated

  • 設定攝影機的方位角。

    Parameters

    • direction: number

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

    Returns void

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

    Parameters

    • horizontalFov: number

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

    Returns boolean

    是否設置成功。

  • 設置操作模式。

    Type Parameters

    Parameters

    Returns void

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

    Parameters

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

      映射設定,使用KeyboardEvent.code。

      • [key: string]: string

    Returns void

    Example

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

    Parameters

    Returns void

    Example

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

    Parameters

    • polygonSet: GeoPolygonSet

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

    Returns void

  • 設定攝影機的俯仰角。

    Parameters

    • vertArg: number

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

    Returns void

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

    Parameters

    Returns void

Methods - 時間

  • 添加時間事件。

    Parameters

    Returns number

    事件編號。

  • 添加定時顯示事件。

    Parameters

    • start: Date

      開始顯示時間(包含)。

    • end: Date

      結束顯示時間(包含)。

    • showableObj: {
          show: boolean;
      }

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

      • show: boolean

    Returns number

    事件編號。

  • 移除時間事件。

    Parameters

    • index: number

      事件編號。

    Returns boolean

    移除是否成功。

  • 開關時間事件。

    Parameters

    • index: number

      事件編號。

    • enable: boolean

      是否啟用事件。

    Returns void

Methods - 測量

  • 中斷測量

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

    Returns void

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

    Returns void

  • 測量2D距離。

    Parameters

    Returns void

  • 測量面積。

    Parameters

    Returns void

  • 測量高度。

    Parameters

    Returns void

  • 測量空間距離。

    Parameters

    Returns void

  • 測量點到點距離。

    Parameters

    Returns void

  • 測量地表距離。

    Parameters

    Returns void

  • 測量表面面積。

    Parameters

    Returns void

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

    Parameters

    • afterTerrain: boolean

      是否比地形晚畫。

    Returns void

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

    Parameters

    • measureEpsg: number

      測量用的Epsg。

    Returns boolean

    是否設定成功。

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

    Parameters

    • freeze: boolean

      是否凍結滑鼠點擊。

    Returns void

Methods - 渲染

  • 取得畫圖的FPS。

    Returns number

    畫圖的FPS。

  • 取得正射影像畫面

    Parameters

    Returns void

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

    Parameters

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

      取得畫面的回呼。

        • (canvasImage, canvasImageDataURL): void
        • Parameters

          • canvasImage: HTMLImageElement
          • canvasImageDataURL: string

          Returns void

    Returns void

  • 更新畫面。

    Returns void

Methods - 游標

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

    Parameters

    Returns void

Methods - 裁切

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

    Parameters

    Returns void

  • 移除裁切空間。

    Returns void

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

    Parameters

    Returns void

Methods - 輸入

  • 中斷輸入。

    Returns void

  • 完成輸入。

    Returns void

  • 輸入球。

    Parameters

    Returns void

  • 輸入三維點。

    Parameters

    Returns void

  • 輸入三維聚合線。

    Parameters

    Returns void

  • 輸入矩形。

    Parameters

    Returns void

  • 輸入表面圓。

    Parameters

    Returns void

  • 輸入表面點。

    Parameters

    Returns void

    Example

    terrainView.inputSurfacePoint({
    onCompleted: (event: { success: boolean, geo: GeoPoint }) => {
    if(event.success) console.log(event.geo);
    }
    });
  • 輸入表面多邊形。

    Parameters

    Returns void

  • 輸入表面聚合線。

    Parameters

    Returns void

  • 輸入表面矩形。

    Parameters

    Returns void

UI

  • 加入提示圖片。

    Parameters

    Returns null | Figure

    提示圖片物件。

    Example

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

    Parameters

    Returns null | ov.Element.Text

    提示文字物件

    Example

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

    Parameters

    Returns void

  • 清除全部提示圖片。

    Returns void

  • 清除全部提示文字。

    Returns void

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

    Type Parameters

    Parameters

    • type: Object

      Widget的類型。

    Returns BaseWidget<HTMLElement | WindowUI, EventListenerMap>[]

    指定類別的Widget陣列。

    Example

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

    Parameters

    Returns void

圖層

  • 加入自畫圖層。

    Parameters

    Returns null | CustomLayer

    自畫圖層。

    Example

    const customLayer = terrainView.addCustomLayer({
    layername: "custom"
    });
  • 加入模型圖層。

    Parameters

    Returns void

    Example

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

    Parameters

    Returns void

    Example

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

    Parameters

    Returns void

    Example

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

    Parameters

    Returns void

    Example

    var param = {};
    param.url = "https://tiles.arcgis.com/tiles/V6ZHFr6zdgNZuVG0/arcgis/rest/services/Buildings_NYC_BKG/SceneServer/layers/0";
    param.callback = function(success, layer){if(success){console.log(layer.name);}};
    terrainView.addOGCI3SLayer(param);
  • 加入傾斜攝影模型圖層。

    Parameters

    Returns void

    Example

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

    Parameters

    Returns void

    Example

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

    Parameters

    Returns void

    Example

    const param = {
    url: "http://127.0.0.1:8080",
    identifier: "pointCloud",
    callback: (success, layer) => {
    if (success) {
    console.log(layer.name);
    }
    }
    };
    terrainView.addPointCloudLayer(param);
  • 加入監視器圖層。

    Parameters

    Returns void

  • 加入S3雲端傾斜攝影模型圖層。

    Parameters

    Returns void

    Example

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

    Parameters

    Returns void

    Example

    const param = {
    url: "http://127.0.0.1:8080",
    identifier: "vector",
    callback: (success, layer) => {
    if (success) {
    console.log(layer.name);
    }
    }
    };
    terrainView.addVectorLayer(param);
  • 以圖層名稱取回圖層。

    Parameters

    • layerName: string

      圖層名稱。

    Returns null | CustomLayer | ov.Layer

    圖層物件。

  • 取得開啟中的圖層。

    Returns (CustomLayer | ov.Layer)[]

    開啟中的圖層。

    Example

    let layers = terrainView.getLayers();
    
  • 移除圖層。

    Parameters

    Returns boolean

    是否移除成功。

  • 恢復地形檔的WMTS影像。

    Returns boolean

    是否恢復成功。

  • 設定地形檔的WMTS影像。

    Parameters

    Returns boolean

    是否設定成功。

最佳解說員

  • get showMenu(): boolean
  • 最佳解說員面板開關狀態,需加入 material-icons.css

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

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

    Returns boolean

  • set showMenu(value): void
  • 最佳解說員面板開關狀態

    Parameters

    • value: boolean

    Returns void

模組

  • get analysis(): Analysis
  • 分析功能物件,可執行視域分析等

    Returns Analysis

  • 載入模組並取得手柄。

    Type Parameters

    Parameters

    • name: T

      模組名稱。

    Returns OViewModuleMap[T]

    模組手柄。

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

    Parameters

    • name: string

      模組名稱。

    Returns Module

    模組手柄。

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

    Parameters

    • param: {
          cameraDistortionCoefficient: number[];
          cameraIntrinsicMatrix: number[];
          cameraHeight?: number;
          cameraWidth?: number;
          isOpen?: boolean;
          updateInterval?: number;
      }

      參數。

      • cameraDistortionCoefficient: number[]

        相機畸變參數,長度為5的數字陣列。

      • cameraIntrinsicMatrix: number[]

        相機3*3內參矩陣,長度為9的數字陣列。

      • Optional cameraHeight?: number

        相機影像高。預設:1080

      • Optional cameraWidth?: number

        相機影像寬。預設:1920

      • Optional isOpen?: boolean

        是否開啟。預設:false

      • Optional updateInterval?: number

        影像更新頻率,0為不更新,單位為毫秒。預設:1000

    Returns void

疊加圖層

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

    Parameters

    • 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)。

    Returns undefined | OverlayWindow

    疊加圖層切窗視窗物件。

  • Parameters

    Returns null | TerrainVectorTileOverlay

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

    Example

    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);
  • 回傳所有疊加圖層切窗視窗。

    Returns OverlayWindow[]

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

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

    Parameters

    • index: string | number

      索引值或名稱。

    Returns undefined | OverlayWindow

    疊加圖層切窗視窗物件。

  • 取得地形 的 疊加圖層

    Returns TerrainOverlay[]

    疊加圖層。

    Example

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

    Parameters

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

      參數物件。

      • boundary: GeoBoundary

        資料所在範圍。

      • epsg: number

        此資料範圍的EPSG。

      • height: number

        資料高。

      • width: number

        資料寬。

      • Optional sampleRatio?: number

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

    Returns {
        boundary: GeoBoundary;
        height: number;
        indexesX: Float32Array;
        indexesY: Float32Array;
        width: number;
    }

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

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

    Parameters

    • oldIndex: string | number

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

    • newIndex: string | number

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

    Returns boolean

    是否成功。

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

    Parameters

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

      參數物件。

      • boundary: GeoBoundary

        圖層資料位置。

      • epsg: number

        參數物件。

      • height: number

        資料高。

      • source: Float32Array[]

        參數物件。

      • width: number

        資料寬。

      • Optional flipY?: boolean

        資料源是否翻轉Y軸。

      • Optional liftSource?: Float32Array[]

        圖層抬升資料位置。

      • Optional noDataValue?: number

        空資料數值。

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

      轉換資訊。

      • boundary: GeoBoundary
      • height: number
      • indexesX: Float32Array
      • indexesY: Float32Array
      • width: number

    Returns void

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

    Parameters

    • index: string | number

      index或圖層名稱。

    Returns void

    是否成功。

    Example

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

    Parameters

    Returns void

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

    Parameters

    • index: string | number | TerrainOverlay

      index或圖層名稱或手柄。

    Returns boolean

    是否成功。

    Example

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

    Parameters

    • setting: {
          drawColor: CSSColor | ov.Color;
          fillColor: CSSColor | ov.Color;
          layerName: string;
          sql: string;
          url: string;
      }

      參數物件。

      • drawColor: CSSColor | ov.Color

        外框線顏色。

      • fillColor: CSSColor | ov.Color

        內部填滿色。

      • layerName: string

        在MapServer上圖層的名稱。

      • sql: string

        要設為隱藏的條件。

      • url: string

        MapServer網址。

    • callback: AddTerrainWMTSOverlayCallback

      執行完成後的回呼。

    Returns void

    Example

    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);
  • 設置條件式向量圖層。

    Parameters

    • 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網址。

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

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

      • Optional extraSettings?: {
            [setting: string]: string;
        }

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

        • [setting: string]: string
    • callback: AddTerrainWMTSOverlayCallback

      執行完成後的回呼。

    Returns void

    Example

    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);
  • 交換地形的疊加圖層的順序,若失敗則不交換。

    Parameters

    • firstIndex: string | number

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

    • secondIndex: string | number

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

    Returns boolean

    是否成功。

Generated using TypeDoc