Scene

new Cesium.Scene(options)

三维场景类,它是所有三维图形对象和状态的容器,通常不直接创建场景,而是由CesiumWidget隐式创建。

contextOptions参数详细信息:

默认值为: { webgl : { alpha : false, depth : true, stencil : false, antialias : true, premultipliedAlpha : true, preserveDrawingBuffer : false, failIfMajorPerformanceCaveat : false }, allowTextureFilterAnisotropic : true }

webgl属性对应用于创建WebGL环境的WebGLContextAttributes对象。

webgl.alpha默认为false,与标准WebGL默认值为true相比,这可以提高性能。

其他webgl属性与WebGLContextAttributes.的WebGL默认值匹配。

allowTextureFilterAnisotropic默认为true,这允许在支持WebGL扩展时进行各向异性纹理过滤。设置为false可以提高性能,但会损害视觉质量,特别是对于水平视图。

Name Type Description
options Object optional 对象具有以下属性:
Name Type Default Description
canvas Canvas 用于创建场景的HTML cancas元素。
contextOptions Object optional 环境和WebGL创建属性,详见上述。
creditContainer Element optional 用于显示服务描述信息的HTML元素。
mapProjection MapProjection new GeographicProjection() optional 在二维和Columbus 视图模式下使用的地图投影。
orderIndependentTranslucency Boolean true optional 如果此项设置为true,并且使用设备支持,将使用与顺序无关的半透明。
scene3DOnly Boolean false optional 如果此项设置为true,将优化三维模式的内存使用和性能,但禁止使用二维或Columbus视图功能。
terrainExaggeration Number 1.0 optional 用于夸大地形的标量。请注意,设置地形夸张不会修改其它任何数据。
shadows Boolean false optional 确定阴影是否由太阳投射形成。
mapMode2D MapMode2D MapMode2D.INFINITE_SCROLL optional 确定二维地图是可旋转的或是可以在在水平方向上无限滚动。
Throws:
  • DeveloperError : options and options.canvas are required.
Example:
//创建一个场景
var viewer=new new Cesium.Viewer('Container');
var scene = viewer.scene;
See:

Members

readonlycamera : Camera

获取当前场景的相机对象。

globe : Globe

获取或设置深度测试地球。

readonlyimageryLayers : ImageryLayerCollection

获取场景中将被渲染的影像图层集合。

imagerySplitPosition : Number

获取或设置视口中影像分割条的位置。取值范围为0.0~1.0。

readonlylayers : Layers

获取场景中的图层集合。

multiViewportMode : Number

获取或设置多视口模式MultiViewportMode
Demo:

terrainProvider : TerrainProvider

获取或设置地球的地形服务提供者。

undergroundDepth : Number

获取或设置相机进入地下时所处的深度,单位:米。该属性值为正值,表示相机所处地下位置与三维球体表面间的垂直距离。。
Example:
* var viewer = new Cesium.Viewer('cesiumContainer',{});
var scene = viewer.scene;
//设置相机进入地下10米
scene.undergroundDepth = 10;
//获取相机进入地下深度
var undergroundDepth = scene.undergroundDepth;

undergroundMode : Boolean

获取或设置地下是否可见。true 表示地下可见;false 表示地下不可见。
Example:
* var viewer = new Cesium.Viewer('cesiumContainer',{});
var scene = viewer.scene;
//设置开启地下
scene.undergroundMode = true;
//获取是否开启地下
var isUnderground = scene.undergroundMode;
Demo:

useWebVR : Boolean

获取或设置是否开启WebVR。
Default Value: false
Example:
var viewer = new Cesium.Viewer('cesiumContainer',{});
var scene = viewer.scene;
//设置开启WebVR
scene.useWebVR = true;
//获取是否开启WebVR
var useWebVR = scene.useWebVR;

Methods

addS3MInstanceCollection(url, instanceAttrs)S3MInstanceCollection

向场景添加*.gltf、*.s3m格式的实例化模型,可通过此方式向场景添加树木、路灯等小品模型。
Name Type Description
url String 指定模型的地址。
instanceAttrs Array 指定实例化模型的信息(如对象位置)数组。
Returns:
S3M模型实例化集合。
Demo:

addS3MTilesLayerByScp(url, options)

以SCP缓存方式添加S3MTileslayer到场景中。
Name Type Description
url String iserver中发布的配置文件地址。
options Object 图层所需对象:
Name Type Description
name String 图层名称。
Example:
var url = "http://www.supermapol.com/iserver/services/3D-srsb/rest/realspace/datas/srsb/config";
var promise = scene.addS3MTilesLayerByScp(url, {name: "sr"});

open(url)

打开一个包含多个三维切片缓存图层的三维场景服务,客户端将加载此服务中的所有图层。
Name Type Description
url String iserver中发布的三维服务地址。
Example:
//打开所发布三维服务下的所有图层
 var promise = scene.open('http://www.supermapol.com/iserver/services/3D-WebGLCBD/rest/realspace');

pickPosition(windowPosition, result)Cartesian3

从屏幕位置和深度纹理中获取笛卡尔坐标。
Name Type Description
windowPosition Cartesian2 执行拾取的窗口坐标。
result Cartesian3 optional 待还原结果的对象。
Returns:
笛卡尔坐标位置。
Throws:
  • DeveloperError : 不支持从深度纹理中拾取,请检查 pickPositionSupported.
  • DeveloperError : 不支持2D。正交投影矩阵不可逆。
Example:
var windowPosition = new Cesium.Cartesian2(240, 670);
var position = scene.pickPosition(windowPosition);