解密ThingJS是如何讓程序員更高效的開發物聯網可視化項目

物聯網可視化項目怎麼製作的?除了需要建模還需要什麼?一般來說物聯網可視化項目中都包含哪些東西?物聯網可視化項目的製作週期大概是多久?一個用來初期投標的物聯網可視化方案怎麼製作纔算是簡單?就目前而言,可視化運用的最爲廣泛的位置是哪?遊戲領域可以說是可視化運用的最爲廣泛的位置,比如《刺客信條》《荒野大鏢客》等等,可以說,絕大多數3d遊戲,都運用到了可視化的技術,除此之外就是影視行業了,一些特效的製作同樣離不開3d建模,離不開可視化這個技術,就比如《復仇者聯盟》中炸燬的無數街道,飛上天空的城市等等特效,這些都運用到了可視化,最後,就是物聯網可視化方面了,在沒有這個行業之前,人們都是拿着可視化相關技術去做遊戲、做電影特效等等,當可視化第一次被運用到物聯網上後,才發現,“萬物可視”不是一個噱頭,生活中的絕大多數物體都能用模型來代替,而一些虛擬的比如溫度、風也能通過顏色的變化、例子的流動來代表,或者是用數據來表示。
有人會問,既然遊戲裏的畫面做的那麼精緻,有的甚至就跟真的一樣,那物聯網可視化是不是也要這樣做呢?這個效果可以說只能留待日後去解決,要知道一個優秀的3d遊戲製作週期普遍都是以年爲單位去製作的,少則半年,多則五六年,甚至說,以目前的技術半年時間也不見得能做出一個優秀的3d遊戲,那如果一個物聯網可視化項目要做好幾年,那代表了什麼?說不定等你項目還沒做到三分之一,甲方就不需要你這項目了,因此時間成爲了物聯網可視化項目製作的要求,製作時間要儘可能地短,同時物聯網可視化項目也不會像遊戲那般對於渲染、對於模型的精密程度有那麼高的要求,如果使用threejs、unity去開發物聯網可視化項目,難免要耗費更多的時間與精力,因此明智的企業都會進行一番取捨,將“東風導彈”改造成了“95式步槍”,將渲染這塊遊戲中十分專注的需求變成了一個默認值,看似砍了一刀,但要看是拿這個新武器用來幹嘛。
那麼有人去將這些unity、threejs技術改造麼?還真有,優鍩科技就這樣幹了,基於threejs研發的 ThingJS ,將一些複雜的功能給直接封裝了,還大大降低了開發者開發物聯網可視化項目的門檻,除此之外,提供了大量的工具去簡化物聯網開發,有campusbuilder工具用來搭建場景,有citybuilder工具去製作城市模型,有thingjs在線開發平臺去寫相應的控制代碼,還有chartbuilder工具用來直接簡化使用圖表的步驟。下面就讓我們來看看ThingJS的chartbuilder吧:
圖表結合citybuilder場景

首先我們在沒有ChartBuilder的時候是如何快速的搭建一個圖表並且進行數據交互呢?有幾種方法,最笨的就是自己通過html寫一個圖表,這個當然是不推薦使用的,因爲現在有Echarts(https://www.echartsjs.com/examples/zh/index.html)這個火熱的圖表工具,有哪些需要的圖表樣式都可以去這裏面下載。
使用方法則是查看該實例,將選擇好的Echarts實例中左側的json字符串全部複製,然後進入到ThingJS網站中的“在線開發”,點擊其中的官方示例,找到“界面(2D)”,選擇“Echarts+交互”,替換掉官方示例中option的json數據,保存後生成新項目,運行後即可將選擇的圖表運用至該示例並且展示。

Echarts網站

Echarts網站

ThingJS在線開發平臺

但是這個我還需要一個個的定位,有比這個還方便就能直接生成一個圖表模板,然後改改數據就能使用的麼?有的!ThingJS目前推出了ChartBuilder這個欄目,當然,目前僅對VIP用戶開放,爲啥普通用戶不能用?別問我,我也不知道,在享受了一下VIP特權之後,對ChartBuilder進行了一個大致瞭解,大致上可以這樣說,ChartBuilder是對Echarts的進一步封裝,使用起來更爲方便,同時也是有了一個ChartBuilder編輯器的存在,當然,目前來說ChartBuilder使用起來還沒有VScode那種編輯器來得方便,但是能用,還算是一個比較好用的工具。
使用ChartBuilder還是需要看一下如何進行數據交互的,相關的教程在ThingJS官網的文檔中心→ChartBuilder→ChartBuilder教程V3.0,其餘的修改樣式都非常簡單,最需要關心的就是進行數據交互了,在ChartBuilder中稱爲數據接入:
ChartBuilder提供了多層次、多形式的數據接入方式,用戶可根據自己的需求選擇合適的方法
Level0 靜態JSON數據
Level1 場景級數據
Level2 組件級數據
Level3 訂閱數據適配器的數據
數據優先級依次遞增(如果有Level3的數據,直接應用,沒有則依次向下尋找,直到獲取到數據
ChartBuilder配置數據源

通過POST請求RestApi獲取原始數據:
a.填入RESTAPI地址。
b.填入返回層級。
c.填入參數。
組件可訂閱數據適配器的數據,實時渲染
a.創建組件適配器
b.組件適配器對接數據
c.組件選擇訂閱數據
d.通過JS處理獲取到的數據
相關數據接入js代碼如下:

//獲取訂閱的數據(傳入數據適配器的id)
let data = this.getPublishDataById('udatae6af66a5-fcdc-ab15-cec5-c9eb786a9a7a')
/*該函數可以根據接數組件ID獲取該組件接入的業務數據
返回值爲業務數據格式
參數id:組件id(string),可以在組件工具條上進行拷貝*/
//console.log(data)
//獲取組件的配置
let options = this.getOptions()
/*該函數可以獲取該組件的配置數據*/
//獲取組件系列的值
let legendData = options.legend.data
//清空系列的值
legendData.splice(0,legendData.length)
//獲取組件的業務數據
let seriesData = options.series[0].data
//清空業務數據
seriesData.splice(0,seriesData.length)
//遍歷插入數據
for (let i = 0; i
legendData.push(data[i].name)
seriesData.push(data[i])
}

大致對於ChartBuilder有個瞭解後,我們就在我們的項目中使用ChartBuilder來開發圖表了。
開發圖表分以下幾個步驟:
a.打開要開發圖表的項目,點擊“圖表”按鈕或者Ctrl+B快捷出現圖表界面,選擇對應模板;
b.第一次使用ChartBuilder,會彈出登錄頁面,關閉此頁面重新進入即可(千萬別選擇登錄,否則你會發現用戶名密碼錯誤)。
c.進入到ChartBuilder編輯頁面,編輯對應的數據名稱,比如標題、數據源什麼的。
d.編輯完成後點擊保存,返回ThingJS項目,點擊刷新,右鍵出現的.cht文件,點擊編輯圖表即可再次編輯,點擊預覽即可查看編輯後的結果。
至此一個圖表就被我們加入到項目中去了,是不是十分的方便呢。大家也可以進行嘗試喲。

ThingJS在線開發文件格式

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章