CesiumWidget
创建。
contextOptions
参数细节:
默认值为:
{
webgl : {
alpha : false,
depth : true,
stencil : false,
antialias : true,
premultipliedAlpha : true,
preserveDrawingBuffer : false,
failIfMajorPerformanceCaveat : false
},
allowTextureFilterAnisotropic : true
}
webgl
属性对应 WebGLContextAttributes 对象,用于创建WebGL上下文。
webgl.alpha
默认值为false,与标准的WebGL默认值true相比,这可以提高性能。
如果应用程序需要使用alpha混合将Cesium合成在其他HTML元素之上,设置webgl.alpha
为 true。
其它的 webgl
属性与WebGL默认值WebGLContextAttributes匹配。
allowTextureFilterAnisotropic
默认值为true, 当支持WebGL扩展时,它支持各向异性纹理过滤。
将此设置为false将提高性能,但会损害视觉质量,特别是对于水平视图。
Name | Type | Description | ||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
options |
Object |
optional
具有下列属性的对象:
|
-
DeveloperError : options 和 options.canvas 是必须的.
// 创建没有各向异性纹理过滤的场景
var scene = new Cesium.Scene({
canvas : canvas,
contextOptions : {
allowTextureFilterAnisotropic : false
}
});
成员变量
Scene#skyBox
时的背景颜色.
-
Default Value:
Color.BLACK
-
Default Value:
true
决定执行什么命令的函数。如下例所示,该函数将接收命令的 owner
作为参数,并返回一个布尔值,指示是否命令应该被执行。
默认值为 undefined
,表示所有命令均已执行。
-
Default Value:
undefined
// 不执行任何命令。
scene.debugCommandFilter = function(command) {
return false;
};
// 只执行布告牌的命令。也就是说,只画布告牌。
var billboards = new Cesium.BillboardCollection();
scene.debugCommandFilter = function(command) {
return command.owner === billboards;
};
当Scene.debugShowFrustums
true
时,它包含关于每个视锥执行命令数量的统计信息。
totalCommands
是执行的命令总数,忽略重叠部分。
commandsInFrustums
是一个数组,其中包含命令冗余执行的次数,例如,有多少命令与两个或三个视锥重叠。
-
Default Value:
undefined
当true
时,命令被随机着色(shaded)。这对于性能分析非常有用,可以看到场景或模型的哪些部分是命令密集型的,并且可以从批处理中受益。
-
Default Value:
false
指示哪个视锥将显示深度信息。
-
Default Value:
1
显示每秒的帧数和帧之间的时间。
-
Default Value:
false
当true
时,绘制轮廓以显示相机视锥的边界。
-
Default Value:
false
当true
时,命令将基于它们重叠的视锥被着色(shaded)。
在最近的视锥中的命令是红色的,在第二近的视锥中的命令是绿色的,在最远的视锥中的命令是蓝色的。
如果一个命令与多个视锥重叠,则颜色分量将被组合,例如,与前两个视锥重叠的命令将被着色为黄色。
-
Default Value:
false
显示指定视锥的深度信息。
-
Default Value:
false
该值用于为多视锥的每个视锥创建近和远值。它只用于当 Scene#logarithmicDepthBuffer
设置为 false
时。
当 logarithmicDepthBuffer
为true
时,使用 Scene#logarithmicDepthFarToNearRatio
。
-
Default Value:
1000.0
-
Default Value:
2.2
-
Default Value:
true
-
Default Value:
true
false
时, 3D Tiles 正常渲染。当 true
时,分类的3D Tile几何形状将正常渲染,
未分类的3D Tile几何体将使用 Scene#invertClassificationColor
乘以颜色进行渲染。
-
Default Value:
false
Scene#invertClassification
为 true
时,未分类的3D Tile几何体的高亮显示颜色。
当alpha小于1.0时, 3D Tiles的未分类部分将无法与3D Tiles的分类位置正确融合。
另外,当alpha小于1.0时,必须支持WEBGL_depth_texture 和 EXT_frag_depth WebGL 扩展。
-
Default Value:
Color.WHITE
Scene#invertClassification
功能,则返回true
。
该值用于为多视锥的每个视锥创建近和远值。它只用于当 Scene#logarithmicDepthBuffer
设置为 true
时。
当logarithmicDepthBuffer
为false
时, 使用 Scene#farToNearRatio
.
-
Default Value:
1e9
-
Default Value:
new GeographicProjection()
- glGet with
ALIASED_LINE_WIDTH_RANGE
.
- glGet with
GL_MAX_CUBE_MAP_TEXTURE_SIZE
.
Scene#requestRenderMode
是true
,这个值定义了在渲染请求之前仿真时间允许的最大变化。
较低的值增加渲染的帧数,较高的值减少渲染的帧数。如果undefined
,对模拟时间的更改将不会请求渲染。
这个值会影响场景中变化的渲染率,比如灯光、实体属性更新和动画。
-
Default Value:
0.0
-
Default Value:
0.0
-
Default Value:
SceneMode.SCENE3D
Moon
。
-
Default Value:
undefined
-
Default Value:
Event()
-
Default Value:
Event()
-
Default Value:
1.0
-
Default Value:
1.75e6
Scene#pickPosition
函数,则返回true
。
true
时,则启用使用深度缓冲区拾取半透明几何体的功能。注意 Scene#useDepthPicking
必须为true才能正常工作。
渲染必须在拾取之间调用。
启用时性能会下降。有额外的绘制调用来为半透明几何体写入深度。
-
Default Value:
false
// 拾取半透明图元的位置
viewer.screenSpaceEventHandler.setInputAction(function onLeftClick(movement) {
var pickedFeature = viewer.scene.pick(movement.position);
if (!Cesium.defined(pickedFeature)) {
return; // nothing picked
}
viewer.scene.render();
var worldPosition = viewer.scene.pickPosition(movement.position);
}, Cesium.ScreenSpaceEventType.LEFT_CLICK);
render
函数中抛出错误时引发的事件。
场景实例和抛出的错误是传递给事件处理程序的仅有的两个参数。
默认情况下,引发此事件后不会重新引发错误,但是可以通过设置 rethrowRenderErrors 属性来更改。
true
时,则只在场景变化时渲染帧,开启可以提高程序性能,但是需要使用 Scene#requestRender
去创建渲染新的一帧。
在许多情况下,在API的其他部分对场景进行更改之后,这将是必要的。
-
Default Value:
false
render
中发生的异常,来引发renderError
事件,
如果为true,则在引发事件后重新抛出错误。如果为false,则render
引发事件后,该函数将正常返回。
-
Default Value:
false
-
Default Value:
undefined
SkyBox
-
Default Value:
undefined
true
。
Sun
。
-
Default Value:
undefined
-
Default Value:
true
-
Default Value:
Cartesian3(1.8, 1.85, 2.0)
true
时,启用使用深度缓冲区的拾取。
-
Default Value:
true
true
时,将场景分割为两个视口,分别为左右眼的立体视图。用于cardboard和WebVR。
-
Default Value:
false
内置方法
Name | Type | Description |
---|---|---|
position |
Cartesian3 | 笛卡尔坐标中的位置。 |
result |
Cartesian2 | optional 一个可选对象,用于返回转换为画布坐标的输入位置。 |
undefined
。
// 每当鼠标移动时,输出经度/纬度(0,0)的画布位置。
var scene = widget.scene;
var ellipsoid = scene.globe.ellipsoid;
var position = Cesium.Cartesian3.fromDegrees(0.0, 0.0);
var handler = new Cesium.ScreenSpaceEventHandler(scene.canvas);
handler.setInputAction(function(movement) {
console.log(scene.cartesianToCanvasCoordinates(position));
}, Cesium.ScreenSpaceEventType.MOUSE_MOVE);
undefined
。
可用于将对象紧贴到场景中的地球、3D Tiles或图元上。
此函数仅贴紧当前视图中渲染的地球瓦片和3D Tiles。紧贴所有其他图元,不管它们的可见性如何。
Name | Type | Default | Description |
---|---|---|---|
cartesian |
Cartesian3 | 给定的地理坐标。 | |
objectsToExclude |
Array.<Object> | optional 不固定紧贴的图元、实体或3D Tiles要素的列表。 | |
width |
Number |
0.1
|
optional 交叉体的宽度,单位为米。 |
result |
Cartesian3 | optional 返回固定紧贴位置的可选对象。 |
undefined
如果没有场景几何可贴紧。
-
DeveloperError : clampToHeight 仅支持3D模式。
-
DeveloperError : clampToHeight 需要深度纹理支持。检查sampleHeightSupported。
// 贴紧一个实体到底层的场景几何图形
var position = entity.position.getValue(Cesium.JulianDate.now());
entity.position = viewer.scene.clampToHeight(position);
Cartesian3
位置数组发起异步Scene#clampToHeight
查询。
返回在查询完成时解析的promise。每个位置都进行了适当的修改。
如果由于无法在该位置采样几何图形而无法紧贴某个位置,或者发生了其他错误,则将数组中的元素设置为undefined。
即异步 Scene#clampToHeight
查询,传入地理坐标数组,返回 Cartesian3
位置数组。
Name | Type | Default | Description |
---|---|---|---|
cartesians |
Array.<Cartesian3> | 地理坐标数组。 | |
objectsToExclude |
Array.<Object> | optional 过滤的globe, 3D Tiles, 或者 primitives集合。 | |
width |
Number |
0.1
|
optional 交叉口体积的宽度,单位为米。 |
-
DeveloperError : clampToHeightMostDetailed 仅支持3D模式。
-
DeveloperError : clampToHeightMostDetailed 需要深度纹理支持。检查sampleHeightSupported。
var cartesians = [
entities[0].position.getValue(Cesium.JulianDate.now()),
entities[1].position.getValue(Cesium.JulianDate.now())
];
var promise = viewer.scene.clampToHeightMostDetailed(cartesians);
promise.then(function(updatedCartesians) {
entities[0].position = updatedCartesians[0];
entities[1].position = updatedCartesians[1];
}
isDestroyed
将导致DeveloperError
异常。
因此,如示例中所述,将返回值( undefined
)分配给对象。
-
DeveloperError : This object was destroyed, i.e., destroy() was called.
scene = scene && scene.destroy();
Name | Type | Default | Description |
---|---|---|---|
windowPosition |
Cartesian2 | 执行拾取的窗口坐标。 | |
limit |
Number | optional 集合中对象的个数,如果超过这个数将不会再拾取。 | |
width |
Number |
3
|
optional 拾取矩形的宽度。 |
height |
Number |
3
|
optional 拾取矩形的高度。 |
-
DeveloperError : 未定义的 windowPosition。
var pickedObjects = scene.drillPick(new Cesium.Cartesian2(100.0, 200.0));
Name | Type | Description |
---|---|---|
format |
String | 纹理格式。可能是格式名或WebGL扩展名,例如s3tc或WEBGL_compressed_texture_s3tc。 |
true
,否则返回false
。
Name | Type | Default | Description |
---|---|---|---|
duration |
Number |
2.0
|
optional 转换动画完成所需的时间(以秒为单位)。 |
Name | Type | Default | Description |
---|---|---|---|
duration |
Number |
2.0
|
optional 转换动画完成所需的时间(以秒为单位)。 |
Name | Type | Default | Description |
---|---|---|---|
duration |
Number |
2.0
|
optional 转换动画完成所需的时间(以秒为单位)。 |
拾取3D Tiles tileset的要素后, pick
返回 Cesium3DTileFeature
对象。
Name | Type | Default | Description |
---|---|---|---|
windowPosition |
Cartesian2 | 拾取的窗口坐标。 | |
width |
Number |
3
|
optional 拾取矩形的宽度。 |
height |
Number |
3
|
optional 拾取矩形的高度。 |
// 鼠标移上去时显示黄色。
handler.setInputAction(function(movement) {
var feature = scene.pick(movement.endPosition);
if (feature instanceof Cesium.Cesium3DTileFeature) {
feature.color = Cesium.Color.YELLOW;
}
}, Cesium.ScreenSpaceEventType.MOUSE_MOVE);
从2D中的深度缓冲区重建的位置可能与3D和Columbus view中返回的位置有差异。 这是由于透视深度值的分布与正投影深度值的分布不同造成的。
设置 Scene#pickTranslucentDepth
为 true
来包含半透明图元,否则这本质上会选择半透明的图元。
Name | Type | Description |
---|---|---|
windowPosition |
Cartesian2 | 执行拾取的窗口坐标。 |
result |
Cartesian3 | optional 存储结果的对象。 |
-
DeveloperError : 不支持从深度缓冲区中进行选择,检查pickPositionSupported。
Scene#requestRenderMode
设置为 true 时,请求新的渲染帧。渲染速率将不会超过CesiumWidget#targetFrameRate
。
undefined
。输入位置的高度被忽略。
可用于将对象固定到场景中的地球、3D Tiles或图元上。
此函数仅对当前视图中渲染的地球瓦片和3D Tiles的高度进行采样。高度不受可见性影响。
Name | Type | Default | Description |
---|---|---|---|
position |
Cartographic | 给定的地理坐标。 | |
objectsToExclude |
Array.<Object> | optional 过滤的图元、实体或3D瓦片的要素列表,以避免采样高度。 | |
width |
Number |
0.1
|
optional 交叉体的宽度,单位为米。 |
undefined
如果没有场景几何来采样高度。
-
DeveloperError : sampleHeight 仅支持3D模式。
-
DeveloperError : sampleHeight 需要深度纹理支持。检查sampleHeightSupported。
var position = new Cesium.Cartographic(-1.31968, 0.698874);
var height = viewer.scene.sampleHeight(position);
console.log(height);
Cartographic
位置数组发起异步Scene#sampleHeight
查询。
输入位置的高度被忽略。返回在查询完成时解析的promise。每个点的高度都在适当的地方进行了修改。
如果由于无法在该位置采样几何图形而无法确定高度,或者发生了其他错误,则将高度设置为undefined。
即异步 Scene#sampleHeight
查询,传入地理坐标数组,返回高度数组。
Name | Type | Default | Description |
---|---|---|---|
positions |
Array.<Cartographic> | 要随取样高度更新的地理位置。 | |
objectsToExclude |
Array.<Object> | optional 图元、实体或3D Tiles的要素列表,以避免采样高度。 | |
width |
Number |
0.1
|
optional 交叉体的宽度,单位为米。 |
-
DeveloperError : sampleHeightMostDetailed 仅支持3D模式。
-
DeveloperError : sampleHeightMostDetailed 需要深度纹理支持。检查sampleHeightSupported。
var positions = [
new Cesium.Cartographic(-1.31968, 0.69887),
new Cesium.Cartographic(-1.10489, 0.83923)
];
var promise = viewer.scene.sampleHeightMostDetailed(positions);
promise.then(function(updatedPosition) {
// positions[0].height and positions[1].height have been updated.
// updatedPositions is just a reference to positions.
}