实现楼层的分层选择和属性信息展示,该功能基于大雁塔倾斜数据实现单体化分类显示。
数据准备:
1、大雁塔倾斜数据,已转换为3dTiles,参考
2、大雁塔分层多边形矢量图层shp文件;
分层矢量数据包含每一层的最大最小高度,每一层都是重合的矩形,在QGIS中打开如下(选择UTF-8编码):
在cesiumlab中将shp图层转换为3dTiles,设置如下:
注意cesiumlab的版本为1.5.17,低版本的可能会有问题。
数据准备完毕后即可在前端cesium框架中加载显示,加载代码很简单,如下:
//西安大雁塔
var dayantaTileset = new Cesium.Cesium3DTileset({
url: './TestData/output/osgbtiles/tileset.json'
})
viewer.scene.primitives.add(dayantaTileset);
//大雁塔矢量单体
var classifytileset = new Cesium.Cesium3DTileset({
url: './TestData/output/dayantaclassify/tileset.json',
classificationType: Cesium.ClassificationType.CESIUM_3D_TILE
});
//注意这个颜色的设置
classifytileset.style = new Cesium.Cesium3DTileStyle({
color: 'rgba(255, 0, 0, 0.5)'//,增加要素选择效果后,将原始颜色透明度调到几乎看不到,改为'rgba(255, 0, 0, 0.01)'
});
viewer.scene.primitives.add(classifytileset);
然后增加分层选择效果,选择显示属性信息通过侦听鼠标MOVE和LEFT_CLICK事件,查询要素获得,具体代码参照