原文链接及内容

: 由于个人的Cesium Ion中没有官方示例中的数据,因此仅在官方提供的在线编辑器中进行了学习、修改。

使用 3D Tiles 渲染的室内示例。

渲染室内的模型

示例代码如下:

1
2
3
4
5
6
7
8
9
<style>
@import url(../templates/bucket.css);
.cesium-performanceDisplay-defaultContainer {
top: 10px;
}
</style>
<div id="cesiumContainer" class="fullSize"></div>
<div id="loadingOverlay"><h1>Loading...</h1></div>
<div id="toolbar"></div>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
/**
* 示例介绍:
* San Miguel 模型由 Guillermo M. Leal Llaguno(这是一个艺术家) 创建。
* 由 Morgan McGuire 整理并托管:http://graphics.cs.williams.edu/data/meshes.xml
*/

const viewer = new Cesium.Viewer("cesiumContainer", {
geocoder: false,
sceneModePicker: false,
homeButton: false,
navigationHelpButton: false,
baseLayerPicker: false,
navigationInstructionsInitiallyVisible: false,
animation: false,
timeline: false,
fullscreenButton: false,
selectionIndicator: false,
skyBox: false,
shouldAnimate: true,
});

viewer.cesiumWidget.creditContainer.style.display = "none";//隐藏版权信息
viewer.scene.debugShowFramesPerSecond = true;//添加帧速显示

try {
const tileset = await Cesium.Cesium3DTileset.fromIonAssetId(125737);
viewer.scene.primitives.add(tileset);
} catch (error) {
console.log(`Error loading tileset: ${error}`);
}

const initialPosition = new Cesium.Cartesian3(
-1111583.3721328347,
-5855888.151574568,
2262561.444696748,
);
const initialOrientation = new Cesium.HeadingPitchRoll.fromDegrees(
100.0,
-15.0,
0.0,
);
viewer.scene.camera.setView({
destination: initialPosition,
orientation: initialOrientation,
endTransform: Cesium.Matrix4.IDENTITY,
});