Scene
是Cesium
中的核心类之一,提供了在浏览器中创建3D视觉化场景的工具。
在你开始使用Scene
类之前,必须先创建一个场景对象。你可以使用如下代码创建一个场景:
var viewer = new Cesium.Viewer('cesiumContainer');
var scene = viewer.scene;
该代码在ID为cesiumContainer
的div
元素中创建了一个Viewer
对象,并通过viewer.scene
属性访问了Scene
对象。
默认情况下,场景会显示一个默认的球体、雾和光源。你可以在控制台中使用如下代码修改这些默认属性:
scene.skyBox = new Cesium.SkyBox({
sources : {
positiveX : 'path/to/pos-x.jpg',
negativeX : 'path/to/neg-x.jpg',
positiveY : 'path/to/pos-y.jpg',
negativeY : 'path/to/neg-y.jpg',
positiveZ : 'path/to/pos-z.jpg',
negativeZ : 'path/to/neg-z.jpg'
}
});
scene.fog.enabled = true;
scene.fog.density = 0.0005;
scene.globe.enableLighting = true;
以上代码将默认的球体替换为自定义的SkyBox
,启用雾效果并设置了其密度,同时开启了场景光照。
你可以使用下列代码操纵场景:
scene.camera.setView({
destination : Cesium.Cartesian3.fromDegrees(-75.59, 40.04, 30000)
});
scene.camera.flyTo({
destination : Cesium.Cartesian3.fromDegrees(-75.59, 40.04, 30000)
});
scene.screenSpaceCameraController.enableRotate = false;
scene.screenSpaceCameraController.enableTranslate = false;
scene.screenSpaceCameraController.enableZoom = false;
scene.screenSpaceCameraController.enableTilt = false;
scene.screenSpaceCameraController.enableLook = false;
scene.screenSpaceCameraController.inertiaSpin = 0;
scene.screenSpaceCameraController.inertiaTranslate = 0;
scene.screenSpaceCameraController.inertiaZoom = 0;
这些代码将场景相机定位到了(longitude, latidude, height)
,然后对相机飞行至该位置,同时禁用了相机的某些控制行为,关闭了相机的惯性滚动效果。
在本教程中,你学习了如何使用Scene
类操作Cesium
场景对象。使用Scene
类对象可以完全控制3D场景的视图、相机行为以及其他属性,进而帮助你创建出惊人的三维场景。