適用場景:安裝了「FineVis資料視覺化」插件的使用者,可參考本文了解 FVS 範本的相關API。
版本
報表伺服器版本 | 插件版本 | 功能變動 |
---|---|---|
11.0 | V1.0.0 | 最低版本要求 |
11.0.16 | V1.18.1 | 新增三維組件漫遊動畫相關API: getRoamAnimations 、playRoamAnimations 、updateRoamAnimationAction |
getDataLayers
方法 | getDataLayers() | 獲取三維組件所有的資料圖層 |
---|---|---|
參數 | - | - |
回傳值 | DataLayer[] | interface DataLayer { /** * 圖層是否顯示 */ visible: boolean; /** * 設定圖層顯示或隱藏 */ setVisible: (visible: boolean) => void; } |
範例 | 獲取某個三維組件的全部資料圖層:
| |
應用範例 | ||
行動端 | 不支援行動端 |
getDataLayerByName
方法 | getDataLayerByName() | 獲取某個三維組件的某個具體資料圖層 |
---|---|---|
參數 | name:string | 資料圖層名稱,字串 |
回傳值 | DataLayer | interface DataLayer { /** * 當前圖層是否顯示 */ visible: boolean; /** * 設定當前圖層顯示或隱藏 */ setVisible: (visible: boolean) => void; } |
範例 | 獲取某個三維組件的「圖層1」資料圖層:
| |
應用範例 | ||
行動端 | 不支援行動端 |
animateSceneTime
方法 | animateSceneTime( { from:number, to:number, duration:number, }) | 設定自訂模型組件的場景時間動態變化 注:僅支援 FVS三維自訂場景組件 |
---|---|---|
參數 | from:number to:number duration:number | from:場景變化的開始時間,整數,最小為 0 ,無上限 to:場景變化的結束時間,整數,必須大於 from duration:場景完成變化的時長,單位 ms |
回傳值 | - | - |
範例 | 自訂模型從第一天的 14:00 開始到 第二天的 14:00 結束,變化時長為 3 秒:
在上述場景的基礎上,開啟循環變化: 注:暫無停止場景時間變化API。
| |
應用範例 | ||
行動端 | 不支援行動端 |
getMeshByName
方法 | getMeshByName(name) | 獲取三維組件中的模型物件 |
---|---|---|
參數 | name:string | 模型mesh物件名稱 |
回傳值 | Object | name:模型mesh物件名稱 visible: 可見性 scaling: 縮放比例 rotation: 旋轉角度 position: 位置 focus: 聚焦模型位置 |
範例 | 範例:獲取某個模型物件的縮放比例
| |
應用範例 | - | |
行動端 | 不支援行動端 |
注:下列所述 setVisible 、setScaling 、setRotation 、setPosition 、focus API均需在獲取模型物件之後使用。
setVisible
方法 | setVisible(visible:boolean) | 設定模型物件是否可見 |
---|---|---|
參數 | visible:boolean | 是否可見,布林型
|
回傳值 | void | viod |
範例 | 範例:設定某個三維組件中某個模型物件不可見
| |
應用範例 | - | |
行動端 | 不支援行動端 |
setScaling
方法 | setScaling(NumberArray3) | 設定模型物件的縮放比例 |
---|---|---|
參數 | NumberArray3 | 縮放比例的值:[X,Y,Z] |
回傳值 | void | viod |
範例 | 範例:設定某個三維組件中某個模型物件的縮放比例
| |
應用範例 | - | |
行動端 | 不支援行動端 |
setRotation
方法 | setRotation(NumberArray3) | 設定模型物件的旋轉角度 |
---|---|---|
參數 | NumberArray3 | 旋轉角度的值:[X,Y,Z] |
回傳值 | void | viod |
範例 | 範例:設定某個三維組件中某個模型物件的縮放比例
| |
應用範例 | - | |
行動端 | 不支援行動端 |
focus
方法 | focus(options) | 設定模型物件快速聚焦 V1.15.0 及之後版本支援控制鏡頭的距離、中心點、角度等參數 |
---|---|---|
參數 | options: { target: "top" | "bottom" | "left" | "right" | "front" | "back" | "center"; targetpos: (value: NumberArray3) => NumberArray3; viewRay: (value: NumberArray3) => NumberArray3; distance: (value: number) => number; } | 1)target:相機聚焦到模型上的位置(模型物件的六個面中心和體中心),預設為 top 2)targetpos:在 focus 基礎上微調聚焦中心點的座標 3)viewRay:改變視線。 注:需滿足相機視角「垂直角度」的角度範圍 預設實現方向取決於 target,例如:
4)distance:改變相機與模型的距離。 注:需滿足相機視角「縮放設定」的距離範圍 預設距離取決於 target 面的大小,若 target 為 'center' ,則取決於模型物件整體的大小 |
回傳值 | void | viod |
範例 | 範例1:
範例2:
| |
應用範例 | FVS點選切換三維自訂視角 | |
行動端 | 不支援行動端 |
refreshData
方法 | refreshData() | 重新整理三維組件資料,僅資料更新,組件整體不更新 |
---|---|---|
參數 | {para:"para"} | 參數名稱:參數值 |
回傳值 | - | - |
範例 | 範例1:點選重新整理「自訂模型」組件的資料並傳參:
注:傳遞多個參數時,寫法如下
範例2:給範本新增「頁面載入結束事件」,使三維組件定時重新整理資料:
| |
應用範例 | ||
行動端 | 不支援行動端 |
subscribeMarkerData
方法 | subscribeMarkerData((data, observer)) | 訂閱監聽三維組件資料圖層中的資料更新:當資料圖層中的資料更新,或者生成新的資料,執行回呼 注1:需配合重新整理API使用 |
---|---|---|
參數 | subscribeMarkerData(observer: (data: { [key: string]: any }, observer: {unsubscribe: () => {}}) => void): void; |
|
回傳值 | - | - |
範例 | 範例:根據資料庫表欄位,控制模型是否可見
| |
應用範例 | JS實現資料庫表欄位控制FVS模型顯隱 | |
行動端 | 不支援行動端 |
updateMarkerData
方法 | updateMarkerData((data)) | 可單獨更新三維組件資料圖層中指定模型物件資料 |
---|---|---|
參數 | updateMarkerData(predicate: (data) => boolean, updater: (data) => void); |
|
回傳值 | - | - |
範例 | 範例:更新「停車場模型」中「車輛監視」資料圖層指定模型物件的多個標籤值:
| |
應用範例 | 使用正文框元件,輸入對應車輛編號和停車時長,編輯結束後模型資料變化。(停車場模型設定了停車時長超過 10h 模型紅色預警)如下圖所示: 點選下載範本:JS實現更新指定模型資料.fvs | |
行動端 | 不支援行動端 |
getRoamAnimations
方法 | getRoamAnimations() | 獲取三維組件的所有漫遊路徑資訊(目前僅支援傳回漫遊路徑名稱) |
---|---|---|
參數 | - | - |
回傳值 | RoamAnimationsData[] | interface RoamAnimationsData{ /** * 漫遊路徑名稱 */ name:string } |
範例 | 範例:獲取「自訂模型」組件的漫遊路徑資訊
| |
應用範例 | - | |
行動端 | 不支援行動端 |
playRoamAnimations
方法 | playRoamAnimations() | 播放漫遊動畫 |
---|---|---|
參數 | RoamAnimationOptions | type RoamAnimationOptions = { |
回傳值 | - | |
範例 | 範例1:給標題組件新增點選事件,播放「自訂模型」組件的「漫遊路徑1」動畫
範例2:在「頁面載入結束事件」中寫程式碼,實現頁面載入結束後自動播放漫遊動畫
| |
應用範例 | - | |
行動端 | 不支援行動端 |
updateRoamAnimationAction
方法 | updateRoamAnimationAction() | 暫停/繼續/跳出播放漫遊動畫 |
---|---|---|
參數 | "pause" |"continue"|"exit" | "pause" :暫停 "continue":繼續 "exit":跳出 |
回傳值 | - | - |
範例 | 範例1:暫停「自訂模型」組件漫遊動畫
範例2:繼續「自訂模型」組件漫遊動畫
範例3:跳出「自訂模型」組件漫遊動畫
| |
應用範例 | - | |
行動端 | 不支援行動端 |
getAnimationByName
方法 | getAnimationByName("animationName") | 獲取三維組件的動畫物件 |
---|---|---|
參數 | animationName | 動畫名稱 即為 getMeshByName 裏獲取的 animations[index].name。 注:此處為具體動畫名稱,非模型名稱。如下圖所示: |
回傳值 | - | - |
範例 | 獲取「三維自訂場景1_頁面1」的「SMT貼片機爆炸歸位」模型的「1爆炸」動畫
開始播放「1爆炸」動畫
暫停播放「1爆炸」動畫 animation.pause() 結束播放「1爆炸」動畫
| |
應用範例 | - | |
行動端 | 不支援行動端 |