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