3D Tiles是Cesium中很核心的一部分,尤其是用来实现大范围的模型场景数据的加载应用。
三维倾斜模型、人工建模、BIM模型等等,都可以转换成3D Tiles,进而为我们所用。
从Cesium1.35版本开始,提供了Cesium3DTileset接口。
另外,SkylineGlobe Server软件可以提供3D Tiles(B3DM)模型服务。
核心的接口示例代码如下:
var tileset = viewer.scene.primitives.add(new Cesium.Cesium3DTileset({
url: 'http://localhost/sg/b3dm/shanghai4dml.400063/tileset.json',
//maximumScreenSpaceError: 2,
//maximumNumberOfLoadedTiles: 100,
}));
三维倾斜模型服务地址如下:
展现效果如下:
调整3DTileset位置:
var heightOffset = 20.0;
var boundingSphere = tileset.boundingSphere;
var cartographic = Cesium.Cartographic.fromCartesian(boundingSphere.center);
var surface = Cesium.Cartesian3.fromRadians(cartographic.longitude, cartographic.latitude, 0.0);
var offset = Cesium.Cartesian3.fromRadians(cartographic.longitude, cartographic.latitude, heightOffset);
var translation = Cesium.Cartesian3.subtract(offset, surface, new Cesium.Cartesian3());
tileset.modelMatrix = Cesium.Matrix4.fromTranslation(translation);