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);