Cesium获取BIM模型整栋与每一层的高度信息
原因
最近因为有这样的需求,但是BIM模型内部又没有Height的高度字段,因此只能通过加载模型中的包围盒去获取整栋及每一层之间的高度。记录一下。
缺点
获取的层的高度并不是每一层刚好开始的高度,而是包围盒此时的高度,应该是在层的中间
代码
获取整一幢BIM模型的高度
const cartographic= Cesium.Ellipsoid.WGS84.cartesianToCartographic(tileset.boundingSphere.center);
const height = cartographic.height;
获取每一层的高度
获取每一层的高度,需要BIM模型这个数据就是有层的数据的,否则也是不行
if (tileset) {
const len = tileset._selectedTiles.length;//BIM模型的层数
const tile = tileset._selectedTiles[len - Number(用户选择的层数)];//这里需要倒着减,具体符不符合需要根据实际的数据情况
const carto = Cesium.Cartographic.fromCartesian(
tile._content._tile.boundingSphere.center
);
const height = carto.height;
}