Cesium3DTilesInspectorViewModel(以下简称ViewModel)是cesiumjs中用来展示3D Tiles模型详细信息的视图模型。通过ViewModel,您可以查看每个3D Tiles图块的详细信息以及3D Tiles模型的整体信息。
ViewModel包含以下属性:
isDestroyed:{Boolean}属性,返回ViewModel是否被销毁。tile: {Tile}属性,指定要查看的3D Tiles图块。selectedTile: {Tile}属性,指定ViewModel所选中的3D Tiles图块。detailsShown: {Boolean}属性,指定ViewModel的详细信息是否显示。ViewModel包括以下方法:
destroy(): 销毁ViewModel。销毁后,您将无法访问ViewModel或使用ViewModel的其他方法。toggleDetails(): 切换详细信息的显示状态。如果详细信息已经显示,则此方法将隐藏它,否则它将显示详细信息。ViewModel触发以下事件:
changed: 当tile或selectedTile更改时触发此事件。detailsShownChanged:当detailsShown属性更改时触发此事件。destroyed: 在销毁ViewModel时触发此事件。以下示例将介绍如何使用Cesium3DTilesInspectorViewModel:
// 创建viewer
var viewer = new Cesium.Viewer("cesiumContainer");
// 加载3D Tiles模型
var tileset = new Cesium.Cesium3DTileset({
url: "path/to/tileset",
});
viewer.scene.primitives.add(tileset);
// 获取tileset所有的tile并将其打印到控制台
tileset.readyPromise.then(function () {
var root = tileset.root;
var tiles = [];
tiles.push(root);
while (tiles.length > 0) {
var tile = tiles.pop();
console.log(tile);
if (tile.children) {
tiles = tiles.concat(tile.children);
}
}
});
// 创建3D Tiles Inspector
var inspector = new Cesium.Cesium3DTilesInspectorViewModel({
scene: viewer.scene,
// 这里指定要查看tileset的根tile
tileset: tileset,
// 显示的位置
position: new Cesium.Cartesian3(0, 0, 0),
});
// 打开3D Tiles Inspector
inspector.show = true;
// 切换详细信息的显示状态
inspector.toggleDetails();
了解更多关于cesiumjs中3D Tiles的相关内容,请参考Cesium官方文档。