實現樓層的分層選擇和屬性信息展示,該功能基於大雁塔傾斜數據實現單體化分類顯示。
數據准備:
1、大雁塔傾斜數據,已轉換為3dTiles,參考cesium入門示例-3dTiles加載的第2節osgb數據展示;
2、大雁塔分層多邊形矢量圖層shp文件;
分層矢量數據包含每一層的最大最小高度,每一層都是重合的矩形,在QGIS中打開如下(選擇UTF-8編碼):

在cesiumlab中將shp圖層轉換為3dTiles,設置如下:

注意cesiumlab的版本為1.5.17,低版本的可能會有問題。
數據准備完畢后即可在前端cesium框架中加載顯示,加載代碼很簡單,如下:
1 //西安大雁塔 2 var dayantaTileset = new Cesium.Cesium3DTileset({ 3 url: './TestData/output/osgbtiles/tileset.json' 4 }) 5 viewer.scene.primitives.add(dayantaTileset); 6 //大雁塔矢量單體 7 var classifytileset = new Cesium.Cesium3DTileset({ 8 url: './TestData/output/dayantaclassify/tileset.json', 9 classificationType: Cesium.ClassificationType.CESIUM_3D_TILE 10 }); 11 //注意這個顏色的設置 12 classifytileset.style = new Cesium.Cesium3DTileStyle({ 13 color: 'rgba(255, 0, 0, 0.5)'//,增加要素選擇效果后,將原始顏色透明度調到幾乎看不到,改為'rgba(255, 0, 0, 0.01)'
14 }); 15 viewer.scene.primitives.add(classifytileset);

然后增加分層選擇效果,選擇顯示屬性信息通過偵聽鼠標MOVE和LEFT_CLICK事件,查詢要素獲得,具體代碼參照cesium入門示例-3dTiles加載的3節。最終效果如下:

