Kingwaytek

開始使用

起始版本: 1.1.0

使用 mapThree.prototype.three 創建 3D 圖層

開始使用

3D圖層操作

add3dLayer

add3dLayer(options, beforeLayerId)

新增 3D 圖層。

參數:

  • options Object: 要設定的圖層參數。
名稱描述
options.id string圖層 ID(必填)。
options.minzoom number最小縮放 (0-24)(選填),當縮放級別小於 minzoom,圖層將隱藏,預設為 12
options.maxzoom number最大縮放 (0-24)(選填),當縮放級別大於 maxzoom,圖層將隱藏,預設為 24
  • beforeLayerId string : 插入在指定圖層之前(選填),預設為 undefined

範例:

remove3dLayer

remove3dLayer(id)

移除 3D 圖層。

參數:

  • id string : 欲移除的圖層 ID。

範例:

3D物件操作

add3dModel

add3dModel(options)

新增 3D 模型。注意:模型新增為非同步操作。

參數:

  • options Object: 要設定的模型參數。
名稱描述
options.layerId string圖層 ID(選填),預設為 'kw_3d_layer'。如果找不到對應的圖層,將自動新增。若需自訂 minzoommaxzoombeforeLayerId,請使用 three.add3dLayer() 手動建立圖層
options.id string模型 ID(選填),預設使用 UUID
options.obj string模型檔案(必填),可使用 URL 或是 Three.js Object3D
options.type string模型檔案類型(選填),可設定為 'gltf''fbx'、'dae',若使用 Three.js Object3D 則免填,預設為 'gltf'
options.coordinates array三維座標(必填)
options.anchor string錨點(選填),可設定為 'auto''top''bottom''left''right''center''top-left''top-right''bottom-left''bottom-right',預設為 'auto'
options.scale Object縮放比例(選填),可填數字或是物件,預設為 { x: 1, y: 1, z: 1 }
options.rotation Object旋轉角度(選填),預設為 { x: 0, y: 0, z: 0 }
options.adjustment Object位置調整(選填),預設為 { x: 0, y: 0, z: 0 }
options.hideWhenOutOfBounds boolean超出視窗時隱藏(選填),預設為 false

回傳:

Promise<Object> : 3D 模型,為非同步操作,詳情請看 3D 模型

範例:

點選「開始使用」,即可開始操作地圖

使用 URL 新增 3D 模型:

使用 Three.js Object3D 新增 3D 模型:

add3dLine

add3dLine(options)

新增 3D 線條。

參數:

  • options Object: 要設定的線條參數。
名稱描述
options.layerId string圖層 ID(選填),預設為 'kw_3d_layer'。如果找不到對應的圖層,將自動新增。若需自訂 minzoommaxzoombeforeLayerId,請使用 three.add3dLayer() 手動建立圖層
options.id string線條 ID(選填),預設使用 UUID
options.coordinates array線條的三維座標(必填)
options.color string顏色(選填),預設為 '#000000'
options.opacity number透明度(選填),預設為 1
options.width number寬度(選填),預設為 3
options.zCoordinate numberZ 座標(選填),若填入則會將所有座標的 Z 座標設為此值,預設為 undefined
options.hideWhenOutOfBounds boolean超出視窗時隱藏(選填),預設為 false

回傳:

Object : 3D 線條。

範例:

點選「開始使用」,即可開始操作地圖

個別設定 Z 座標:

使用統一 Z 座標:

add3dDashLine

add3dDashLine(options)

新增 3D 虛線。

參數:

  • options Object: 要設定的虛線參數。
名稱描述
options.layerId string圖層 ID(選填),預設為 'kw_3d_layer'。如果找不到對應的圖層,將自動新增。若需自訂 minzoommaxzoombeforeLayerId,請使用 three.add3dLayer() 手動建立圖層
options.id string虛線 ID(選填),預設使用 UUID
options.coordinates array虛線的三維座標(必填)
options.color string顏色(選填),預設為 '#000000'
options.opacity number透明度(選填),預設為 1
options.width number寬度(選填),預設為 3
options.zCoordinate numberZ 座標(選填),若填入則會將所有座標的 Z 座標設為此值,預設為 undefined
options.dashSize number虛線大小(選填),預設為 1
options.gapSize number虛線間隔(選填),預設為 1
options.hideWhenOutOfBounds boolean超出視窗時隱藏(選填),預設為 false

回傳:

Object : 3D 虛線。

範例:

點選「開始使用」,即可開始操作地圖

個別設定 Z 座標:

使用統一 Z 座標:

add3dMeasureLine

add3dMeasureLine(options)

新增 3D 測量線。

參數:

  • options Object: 要設定的虛線參數。
名稱描述
options.layerId string圖層 ID(選填),預設為 'kw_3d_layer'。如果找不到對應的圖層,將自動新增。若需自訂 minzoommaxzoombeforeLayerId,請使用 three.add3dLayer() 手動建立圖層
options.id string測量線 ID(選填),預設使用 UUID
options.start Array起點三維座標(必填)
options.end Array終點三維座標(必填)
options.lineColor string線條顏色(選填),預設為 '#613BFB'
options.lineOpacity number線條透明度(選填),預設為 1
options.lineWidth number線條寬度(選填),預設為 5
options.labelColor string標籤顏色(選填),預設為 '#FC2B5F'
options.labelFontSize string標籤字型大小(選填),預設為 '16px'
options.hideWhenOutOfBounds boolean超出視窗時隱藏(選填),預設為 false

回傳:

Object : 3D 測量線。

範例:

點選「開始使用」,即可開始操作地圖

get3dObjectById

get3dObjectById(id)

使用 ID 獲取 3D 物件。

參數:

  • id string : 3D 物件 ID。

回傳:

Object | null : 3D 物件或是空值。

範例:

remove3dObjectById

remove3dObjectById(id)

使用 ID 移除 3D 物件。

參數:

  • id string : 3D 物件 ID。

範例:

remove3dObject

remove3dObject(object)

移除 3D 物件。

參數:

  • object Object : 3D 物件。

範例:

detect3dObject

detect3dObject(point)

偵測 3D 物件。

參數:

  • point Array : canvas 座標。

回傳:

Object | null : 3D 物件或是空值。

範例:

點選「開始使用」,即可開始操作地圖

鏡頭操作

fixedCameraToModel

fixedCameraToModel(options)

將鏡頭鎖定在模型上。

參數:

  • options Object: 設定的參數。
名稱描述
options.model Object模型(必填)
options.rotateWithDirection boolean是否隨著運動方向旋轉(選填),預設為 false
options.releaseCameraOnClick boolean點選地圖後釋放鏡頭(選填),預設為 false

範例:

點選「開始使用」,即可開始操作地圖

releaseCamera

releaseCamera()

釋放鏡頭。

範例: