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官方文档。