CesiumWidget
隐式创建的。
contextOptions
参数详情:
默认值为:
{ webgl : { alpha : false, depth : true, stencil : false, antialias : true, powerPreference: 'high-performance', premultipliedAlpha : true, preserveDrawingBuffer : false, failIfMajorPerformanceCaveat : false }, allowTextureFilterAnisotropic : true }
webgl
属性对应于用于创建 WebGL 上下文的
WebGLContextAttributes
对象。
webgl.alpha
默认为 false,与标准 WebGL 默认为 true 相比,可以提高性能。如果应用程序需要使用 alpha 混合将
webgl.alpha
到其他 HTML 元素之上,请将 webgl.alpha 设置为 true。
其他
webgl
属性与
WebGLContextAttributes
的 WebGL 默认值匹配。
allowTextureFilterAnisotropic
默认为 true,在支持 WebGL 扩展时启用各向异性纹理过滤。将此设置为 false 将提高性能,但会损害视觉质量,尤其是对于水平视图。
Name | Type | Default | Description | ||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
options
|
Object |
具有以下属性的对象:
|
|||||||||||||||||||||||||||||||||||||||||||||||||
depthPlaneEllipsoidOffset
|
Number |
0.0
|
可选 调整 DepthPlane 以解决椭球零海拔以下的渲染伪影。 | ||||||||||||||||||||||||||||||||||||||||||||||||
options.msaaSamples
|
Number |
1
|
可选 如果提供,此值控制多重采样抗锯齿的速率。典型的多重采样率为每像素 2、4 甚至有时 8 个样本。更高的 MSAA 采样率可能会影响性能以换取改进的视觉质量。此值仅适用于支持多样本渲染目标的 WebGL2 上下文。 |
Throws:
-
DeveloperError : options 和 options.canvas 是必需的。
Example:
// Create scene without anisotropic texture filtering
const scene = new Cesium.Scene({
canvas : canvas,
contextOptions : {
allowTextureFilterAnisotropic : false
}
});
See:
Members
backgroundColor : Color
Scene#skyBox
未定义。
-
Default Value:
Color.BLACK
See:
readonly camera : Camera
-
Default Value:
false
-
Default Value:
true
确定执行哪些命令的函数。如下例所示,该函数接收命令的
owner
作为参数,并返回一个布尔值,指示是否应该执行该命令。
默认为
undefined
,表示执行所有命令。
-
Default Value:
undefined
Example:
// Do not execute any commands.
scene.debugCommandFilter = function(command) {
return false;
};
// Execute only the billboard's commands. That is, only draw the billboard.
const billboards = new Cesium.BillboardCollection();
scene.debugCommandFilter = function(command) {
return command.owner === billboards;
};
当
Scene.debugShowFrustums
为
true
时,它包含有关每个平截头体执行的命令数的统计信息的属性。
totalCommands
是执行的命令总数,忽略重叠。
commandsInFrustums
是一个数组,其中包含命令被冗余执行的次数,例如,有多少命令与两个或三个平截头体重叠。
-
Default Value:
undefined
当为
true
时,命令会随机着色。这对于性能分析很有用,可以查看场景或模型的哪些部分是命令密集的并且可以从批处理中受益。
-
Default Value:
false
指示哪个截锥体将显示深度信息。
-
Default Value:
1
显示每秒帧数和帧之间的时间。
-
Default Value:
false
如果为
true
,则绘制轮廓以显示相机平截头体的边界
-
Default Value:
false
当为
true
时,命令会根据它们重叠的截锥体进行着色。最近的截锥体中的命令被染成红色,下一个最近的截锥体中的命令是绿色的,最远的截锥体中的命令是蓝色的。如果一个命令与一个以上的平截头体重叠,则组合颜色分量,例如,一个与前两个平截头体重叠的命令被染成黄色。
-
Default Value:
false
See:
See:
该值用于为多截头体的每个截头体创建近值和远值。它仅在
Scene#logarithmicDepthBuffer
为
false
时使用。当
logarithmicDepthBuffer
为
true
时,使用
Scene#logarithmicDepthFarToNearRatio
。
-
Default Value:
1000.0
fog : Fog
-
Default Value:
2.2
globe : Globe
readonly groundPrimitives : PrimitiveCollection
-
Default Value:
false
-
Default Value:
true
readonly imageryLayers : ImageryLayerCollection
false
时,3D Tiles 将正常渲染。当为
true
时,分类的 3D Tile 几何体将正常渲染,而未分类的 3D Tile 几何体将使用与
Scene#invertClassificationColor
相乘的颜色进行渲染。
-
Default Value:
false
invertClassificationColor : Color
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
。
readonly lastRenderTime : JulianDate
light : Light
该值用于为多截头体的每个截头体创建近值和远值。它仅在
Scene#logarithmicDepthBuffer
为
true
时使用。当
logarithmicDepthBuffer
为
false
时,使用
Scene#farToNearRatio
。
-
Default Value:
1e9
readonly mapMode2D : MapMode2D
readonly mapProjection : MapProjection
-
Default Value:
new GeographicProjection()
-
glGet
with
ALIASED_LINE_WIDTH_RANGE
.
See:
-
glGet
with
GL_MAX_CUBE_MAP_TEXTURE_SIZE
.
See:
Scene#requestRenderMode
为
true
,则此值定义在请求渲染之前允许的模拟时间的最大变化。较低的值会增加渲染的帧数,而较高的值会减少渲染的帧数。如果
undefined
,对模拟时间的更改将永远不会请求渲染。该值会影响场景变化(如照明、实体属性更新和动画)的渲染速率。
-
Default Value:
0.0
See:
-
Default Value:
0.0
mode : SceneMode
-
Default Value:
SceneMode.SCENE3D
moon : Moon
-
Default Value:
undefined
morphComplete : Event
-
Default Value:
Event()
morphStart : Event
-
Default Value:
Event()
-
Default Value:
1.0
-
Default Value:
1
true
。
-
Default Value:
1.75e6
Scene#pickPosition
函数,则返回
true
。
See:
true
时,启用使用深度缓冲区拾取半透明几何体。请注意,
Scene#useDepthPicking
也必须为 true 才能使其正常工作。
启用后性能会有所下降。有额外的绘制调用来为半透明几何体写入深度。
-
Default Value:
false
Example:
// picking the position of a translucent primitive
viewer.screenSpaceEventHandler.setInputAction(function onLeftClick(movement) {
const pickedFeature = viewer.scene.pick(movement.position);
if (!Cesium.defined(pickedFeature)) {
// nothing picked
return;
}
const worldPosition = viewer.scene.pickPosition(movement.position);
}, Cesium.ScreenSpaceEventType.LEFT_CLICK);
postProcessStages : PostProcessStageCollection
readonly postRender : Event
See:
readonly postUpdate : Event
readonly preRender : Event
See:
readonly preUpdate : Event
See:
readonly primitives : PrimitiveCollection
readonly renderError : Event
render
函数内引发错误时将引发的事件。场景实例和抛出的错误是传递给事件处理程序的仅有的两个参数。默认情况下,引发此事件后不会重新引发错误,但可以通过设置
rethrowRenderErrors
属性来更改。
true
,则仅在需要时才会渲染帧,具体取决于场景中的变化。启用会提高应用程序的性能,但需要使用
Scene#requestRender
在此模式下显式渲染新帧。在对 API 的其他部分中的场景进行更改后,这在许多情况下是必要的。
-
Default Value:
false
See:
render
中发生的异常总是被捕获以引发
renderError
事件。如果此属性为 true,则在引发事件后重新引发错误。如果此属性为 false,则
render
函数在引发事件后正常返回。
-
Default Value:
false
readonly screenSpaceCameraController : ScreenSpaceCameraController
shadowMap : ShadowMap
skyAtmosphere : SkyAtmosphere
-
Default Value:
undefined
skyBox : SkyBox
SkyBox
用于绘制星星。
-
Default Value:
undefined
See:
true
。
sphericalHarmonicCoefficients : Array.< Cartesian3 >
sun : Sun
Sun
。
-
Default Value:
undefined
-
Default Value:
true
terrainProvider : TerrainProvider
readonly terrainProviderChanged : Event
true
时,启用使用深度缓冲区进行拾取。
-
Default Value:
true
true
时,将场景拆分为两个视口,左眼和右眼具有立体视图。用于纸板和 WebVR。
-
Default Value:
false
Methods
cartesianToCanvasCoordinates (position, result ) → Cartesian2
Name | Type | Description |
---|---|---|
position
|
Cartesian3 | 笛卡尔坐标中的位置。 |
result
|
Cartesian2 | 可选 一个可选对象,用于返回转换为画布坐标的输入位置。 |
Returns:
undefined
的。
Example:
// Output the canvas position of longitude/latitude (0, 0) every time the mouse moves.
const scene = widget.scene;
const ellipsoid = scene.globe.ellipsoid;
const position = Cesium.Cartesian3.fromDegrees(0.0, 0.0);
const handler = new Cesium.ScreenSpaceEventHandler(scene.canvas);
handler.setInputAction(function(movement) {
console.log(scene.cartesianToCanvasCoordinates(position));
}, Cesium.ScreenSpaceEventType.MOUSE_MOVE);
clampToHeight (cartesian, objectsToExclude , width , result ) → Cartesian3
undefined
的位置。可用于将对象夹在地球、3D 瓷砖或场景中的图元上。
此函数仅钳制在当前视图中呈现的地球图块和 3D 图块。钳制到所有其他基元,无论其可见性如何。
Name | Type | Default | Description |
---|---|---|---|
cartesian
|
Cartesian3 | 笛卡尔位置。 | |
objectsToExclude
|
Array.<Object> | 可选 不钳制到的基元、实体或 3D Tiles 特征的列表。 | |
width
|
Number |
0.1
|
可选 交叉点体积的宽度(以米为单位)。 |
result
|
Cartesian3 | optional 一个可选对象,用于返回夹紧位置。 |
Returns:
undefined
的。
Throws:
-
DeveloperError :clampToHeight 仅在 3D 模式下受支持。
-
DeveloperError :clampToHeight 需要深度纹理支持。检查clampToHeightSupported。
Example:
// Clamp an entity to the underlying scene geometry
const position = entity.position.getValue(Cesium.JulianDate.now());
entity.position = viewer.scene.clampToHeight(position);
See:
clampToHeightMostDetailed (cartesians, objectsToExclude , width ) → Promise.<Array.< Cartesian3 >>
Cartesian3
位置数组启动异步
Scene#clampToHeight
查询。返回查询完成时解决的承诺。每个位置都修改到位。如果由于无法在该位置对几何体进行采样而无法固定某个位置,或者发生另一个错误,则数组中的元素将设置为未定义。
Name | Type | Default | Description |
---|---|---|---|
cartesians
|
Array.< Cartesian3 > | 使用钳位位置更新的笛卡尔位置。 | |
objectsToExclude
|
Array.<Object> | 可选 不钳制到的基元、实体或 3D Tiles 特征的列表。 | |
width
|
Number |
0.1
|
可选 交叉点体积的宽度(以米为单位)。 |
Returns:
Throws:
-
DeveloperError :clampToHeightMostDetailed 仅在 3D 模式下受支持。
-
DeveloperError :clampToHeightMostDetailed 需要深度纹理支持。检查clampToHeightSupported。
Example:
const cartesians = [
entities[0].position.getValue(Cesium.JulianDate.now()),
entities[1].position.getValue(Cesium.JulianDate.now())
];
const promise = viewer.scene.clampToHeightMostDetailed(cartesians);
promise.then(function(updatedCartesians) {
entities[0].position = updatedCartesians[0];
entities[1].position = updatedCartesians[1];
}
See:
一旦一个对象被销毁,它就不应该被使用;调用
isDestroyed
以外的任何函数都将导致
DeveloperError
异常。因此,如示例中所做的那样,将返回值 (
undefined
) 分配给对象。
Throws:
-
DeveloperError : 该对象被销毁,即调用了destroy()。
Example:
scene = scene && scene.destroy();
See:
Name | Type | Default | Description |
---|---|---|---|
windowPosition
|
Cartesian2 | 执行拾取的窗口坐标。 | |
limit
|
Number | 可选 如果提供,收集这么多镐后停止钻孔。 | |
width
|
Number |
3
|
可选 选取矩形的宽度。 |
height
|
Number |
3
|
可选 选取矩形的高度。 |
Returns:
Throws:
-
DeveloperError :windowPosition 未定义。
Example:
const pickedObjects = scene.drillPick(new Cesium.Cartesian2(100.0, 200.0));
See:
Name | Type | Description |
---|---|---|
format
|
String | 纹理格式。可以是格式名称或 WebGL 扩展名,例如 s3tc 或 WEBGL_compressed_texture_s3tc。 |
Returns:
Returns:
true
;否则,
false
。
See:
Name | Type | Default | Description |
---|---|---|---|
duration
|
Number |
2.0
|
可选 过渡动画完成的时间量(以秒为单位)。 |
Name | Type | Default | Description |
---|---|---|---|
duration
|
Number |
2.0
|
可选 过渡动画完成的时间量(以秒为单位)。 |
Name | Type | Default | Description |
---|---|---|---|
duration
|
Number |
2.0
|
可选 过渡动画完成的时间量(以秒为单位)。 |
当一个 3D Tiles 瓦片集的特征被拾取时,
pick
返回一个
Cesium3DTileFeature
对象。
Name | Type | Default | Description |
---|---|---|---|
windowPosition
|
Cartesian2 | 执行拾取的窗口坐标。 | |
width
|
Number |
3
|
可选 选取矩形的宽度。 |
height
|
Number |
3
|
可选 选取矩形的高度。 |
Returns:
Example:
// On mouse over, color the feature yellow.
handler.setInputAction(function(movement) {
const feature = scene.pick(movement.endPosition);
if (feature instanceof Cesium.Cesium3DTileFeature) {
feature.color = Cesium.Color.YELLOW;
}
}, Cesium.ScreenSpaceEventType.MOUSE_MOVE);
pickPosition (windowPosition, result ) → Cartesian3
在 2D 中从深度缓冲区重建的位置可能与在 3D 和哥伦布视图中重建的位置略有不同。这是由于透视投影和正投影的深度值分布不同造成的。
将
Scene#pickTranslucentDepth
设置为
true
以包含半透明图元的深度;否则,这基本上是通过半透明基元挑选的。
Name | Type | Description |
---|---|---|
windowPosition
|
Cartesian2 | 执行拾取的窗口坐标。 |
result
|
Cartesian3 | 可选 要在其上恢复结果的对象。 |
Returns:
Throws:
-
DeveloperError :不支持从深度缓冲区中选取。检查pickPositionSupported。
CesiumWidget
或
Viewer
会自动调用。
Name | Type | Description |
---|---|---|
time
|
JulianDate | 可选 渲染的模拟时间。 |
undefined
的高度。输入位置的高度被忽略。可用于将对象夹在地球、3D 瓷砖或场景中的图元上。
此函数仅从当前视图中渲染的地球图块和 3D 图块中采样高度。对所有其他基元的高度进行采样,无论其可见性如何。
Name | Type | Default | Description |
---|---|---|---|
position
|
Cartographic | 从中采样高度的制图位置。 | |
objectsToExclude
|
Array.<Object> | 可选 不从中采样高度的基元、实体或 3D Tiles 特征的列表。 | |
width
|
Number |
0.1
|
可选 交叉点体积的宽度(以米为单位)。 |
Returns:
undefined
的。
Throws:
-
DeveloperError : sampleHeight 仅在 3D 模式下受支持。
-
DeveloperError : sampleHeight 需要深度纹理支持。检查 sampleHeightSupported。
Example:
const position = new Cesium.Cartographic(-1.31968, 0.698874);
const height = viewer.scene.sampleHeight(position);
console.log(height);
See:
sampleHeightMostDetailed (positions, objectsToExclude , width ) → Promise.<Array.< Cartographic >>
Cartographic
位置数组的异步
Scene#sampleHeight
查询。输入位置的高度被忽略。返回查询完成时解决的承诺。每个点的高度都在原地修改。如果由于无法在该位置对几何体进行采样而无法确定高度,或者发生其他错误,则将高度设置为未定义。
Name | Type | Default | Description |
---|---|---|---|
positions
|
Array.< Cartographic > | 使用采样高度更新的制图位置。 | |
objectsToExclude
|
Array.<Object> | 可选 不从中采样高度的基元、实体或 3D Tiles 特征的列表。 | |
width
|
Number |
0.1
|
可选 交叉点体积的宽度(以米为单位)。 |
Returns:
Throws:
-
DeveloperError : sampleHeightMostDetailed 仅在 3D 模式下受支持。
-
DeveloperError : sampleHeightMostDetailed 需要深度纹理支持。检查 sampleHeightSupported。
Example:
const positions = [
new Cesium.Cartographic(-1.31968, 0.69887),
new Cesium.Cartographic(-1.10489, 0.83923)
];
const 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.
}