1. 程式人生 > >上千個視覺化物件對ThingJS來說都不是事兒

上千個視覺化物件對ThingJS來說都不是事兒

在公安三所的視覺化應用場景中,攝像頭、門禁、對講、報警這些型別的物件少到2000個,多到上萬個,在3D視覺化中即要展示每個物件所處的空間位置,也要對每個物件進行操作。以往的經驗,在裝置上方建立貼在螢幕上的UI,就有了下面這種效果。 在這裡插入圖片描述 這是一個錯誤的示例 這樣的一種展示方式不能看到物件所處的位置,很難辨別物件型別,也不能體現3D的可視美觀性,同時在場景轉動時更難定位物件的準確位置。 基於以上問題,我們嘗試不使用圖示標識位置的方案,採用一種新的位置定位視覺化模式。將場景中的建築虛化展示,每個管理物件增加對應的效果,這樣在建築外還是在單一樓層處都能夠看到每一型別物件。 在這裡插入圖片描述 第一版實驗的效果,其實不是很理想,正在逐步調整

程式碼實現其實很簡單,以下程式碼片段介面可參考官方API文件:http://www.thingjs.com/guide/?m=api… 首先需要替換建築材質 app.buildings.forEach(build => {

var floors = build.floors;// 得到建築所有樓層

floors.forEach(floor => {

floor.plan.style.setMaterial({

image: ‘/blue1.jpg’,// 設定一張貼圖樣式

wrap: THING.WrapType.Repeat,// 設定重複度

DoubleSide: true,// 設定物件雙面貼圖

});

// 更換牆體的材質

floor.wall.style.setMaterial({

image: ‘/gray.png’,

wrap: THING.WrapType.Repeat,

transparent: true,

});

})

}); 在這裡插入圖片描述 建築調整材質效果

然後是設定每個物件outline顏色

app.query(’.Thing’).forEach(thing => {

thing.style.outlineColor=’#00FF00’;// 設定物件輪廓線顏色

}) 在這裡插入圖片描述 裝置的效果