Scene

new Cesium.Scene(options)

Cesium 虚拟场景中所有 3D 图形对象和状态的容器。一般来说, 场景不是直接创建的;相反,它是由 CesiumWidget 隐式创建的。
Name Type Description
options object 具有以下属性的对象:
Name Type Default Description
canvas HTMLCanvasElement 创建场景的 HTML 画布元素。
contextOptions ContextOptions optional 上下文和 WebGL 创建属性。
creditContainer Element optional 显示版权信息的 HTML 元素。
creditViewport Element optional 用于显示版权弹窗的 HTML 元素。如果未指定,视口将作为画布的兄弟元素添加。
ellipsoid Ellipsoid Ellipsoid.default optional 默认椭球体。如果未指定,则使用默认椭球体。
mapProjection MapProjection new GeographicProjection(options.ellipsoid) optional 用于 2D 和 哥伦布视图模式的地图投影。
orderIndependentTranslucency boolean true optional 如果为 true,并且配置支持,则使用无序独立透明度。
scene3DOnly boolean false optional 如果为 true,则优化 3D 模式的内存使用和性能,但禁用使用 2D 或哥伦布视图的能力。
shadows boolean false optional 确定光源是否投射阴影。
mapMode2D MapMode2D MapMode2D.INFINITE_SCROLL optional 确定 2D 地图是否可以旋转或在水平方向上无限滚动。
requestRenderMode boolean false optional 如果为 true,则仅在场景中的变化需要时渲染帧。启用后会提高应用程序的性能,但需要在此模式下使用 Scene#requestRender 显式渲染新帧。在 API 的其他部分更改场景后,在许多情况下都需要这样做。有关禁用 MSAA 的更多信息,请参见 通过显式渲染提高性能
maximumRenderTimeChange number 0.0 optional 如果 requestRenderMode 为 true,则此值定义请求渲染之前允许的最大模拟时间变化。有关更多信息,请参见 通过显式渲染提高性能
depthPlaneEllipsoidOffset number 0.0 optional 调整深度平面以解决低于椭球体零高度的渲染伪影。
msaaSamples number 4 optional 如果提供,则此值控制多重采样抗锯齿的样本率。典型的多重采样率为每像素 2、4 或有时 8 个样本。较高的 MSAA 采样率可能会影响性能,以获得更好的视觉质量。此值仅适用于支持多重采样渲染目标的 WebGL2 上下文。设置为 1 以禁用 MSAA。
Throws:
Example:
// Create scene without anisotropic texture filtering
const scene = new Cesium.Scene({
  canvas : canvas,
  contextOptions : {
    allowTextureFilterAnisotropic : false
  }
});
See:

Members

static Cesium.Scene.defaultLogDepthBuffer

使用此项在新构建的场景中设置 Scene#logarithmicDepthBuffer 的默认值。 此属性依赖于支持 fragmentDepth。
影响 3D Tiles 和模型渲染的气氛光照效果设置。此项不应与 Scene#skyAtmosphere 混淆,后者负责渲染天空。
背景颜色,仅在没有天空盒时可见,即 Scene#skyBox 为未定义时。
Default Value: Color.BLACK
See:
获取或设置相机。

readonly cameraUnderground : boolean

相机是否在地球球体下方。
Default Value: false

readonly canvas : HTMLCanvasElement

获取与该场景绑定的画布元素。

readonly clampToHeightSupported : boolean

如果支持 Scene#clampToHeightScene#clampToHeightMostDetailed 函数,则返回 true
See:

completeMorphOnUserInput : boolean

确定在用户输入时是否立即完成场景过渡动画。
Default Value: true

debugCommandFilter : function

此属性仅用于调试;不适合生产使用。

一个决定执行哪些命令的函数。如下面的示例所示, 该函数将命令的 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;
};

readonly debugFrustumStatistics : object

此属性仅用于调试;不适用于生产使用。

Scene.debugShowFrustumstrue 时,此属性包含 具有每个视锥体执行的命令数的统计信息。 totalCommands 是执行的命令总数,忽略 重叠。 commandsInFrustums 是一个数组,包含命令冗余执行的次数 ,例如,有多少命令重叠两个或三个视锥体。

Default Value: undefined

debugShowCommands : boolean

此属性仅用于调试;不适合生产使用。

true 时,命令将随机着色。这对于性能分析很有用,可以查看场景或模型的哪些部分命令密集,可能会受益于批处理。

Default Value: false

debugShowDepthFrustum : number

此属性仅用于调试;不适合生产使用。

指示哪个视锥体将显示深度信息。

Default Value: 1

debugShowFramesPerSecond : boolean

此属性仅用于调试;不适合生产使用。

显示每秒帧数和帧间时间。

Default Value: false

debugShowFrustumPlanes : boolean

此属性仅用于调试;不适合生产使用。

true 时,绘制轮廓以显示相机视锥体的边界。

Default Value: false

debugShowFrustums : boolean

此属性仅用于调试;不适合生产使用。

true 时,命令将根据它们重叠的视锥体着色。最近的视锥体中的命令呈红色,次近的命令呈绿色,最远的视锥体中的命令呈蓝色。如果命令与多个视锥体重叠,颜色组件将结合,例如,与前两个视锥体重叠的命令会呈现黄色。

Default Value: false

readonly drawingBufferHeight : number

底层 GL 上下文的 drawingBufferHeight。
See:

readonly drawingBufferWidth : number

底层 GL 上下文的 drawingBufferWidth。
See:
椭球体。如果未指定,将使用默认椭球体。

eyeSeparation : number

用于纸板或 WebVR 的眼睛间距(以米为单位)。

farToNearRatio : number

使用普通深度缓冲时多视锥体的远近比率。

此值用于为多视锥体的每个视锥体创建近和远值。仅在 Scene#logarithmicDepthBufferfalse 时使用。当 logarithmicDepthBuffertrue 时, 使用 Scene#logarithmicDepthFarToNearRatio

Default Value: 1000.0

focalLength : number

用于纸板或 WebVR 的焦距。
为远离相机的几何体进行混合以实现地平线视图。这允许通过渲染更少的几何体和调度更少的地形请求来实现额外的性能改进。 如果使用的椭球体不是 WGS84,默认情况下禁用。
用于伽马校正的值。仅在使用高动态范围渲染时使用。
Default Value: 2.2
获取或设置深度测试椭球体。
获取地面原始集合的集合。

highDynamicRange : boolean

是否使用高动态范围渲染。
Default Value: false

readonly highDynamicRangeSupported : boolean

是否支持高动态范围渲染。
Default Value: true

readonly id : string

获取此场景的唯一标识符。
获取将在地球上渲染的图层集合。

invertClassification : boolean

false 时,3D Tiles 将正常渲染。当 true 时,分类的 3D Tile 几何体将正常渲染,而未分类的 3D Tile 几何体将以 Scene#invertClassificationColor 乘以的颜色渲染。
Default Value: false

invertClassificationColor : Color

Scene#invertClassificationtrue 时,未分类 3D Tile 几何体的高亮颜色。

当颜色的 alpha 值小于 1.0 时,3D Tiles 的未分类部分将无法与 3D Tiles 的分类位置正确混合。

此外,当颜色的 alpha 值小于 1.0 时,必须支持 WEBGL_depth_texture 和 EXT_frag_depth WebGL 扩展。

Default Value: Color.WHITE

readonly invertClassificationSupported : boolean

如果支持 Scene#invertClassification,则返回 true
See:

readonly lastRenderTime : JulianDate

获取上次渲染时的模拟时间。如果场景尚未渲染,则返回未定义。
用于阴影的光源。默认为来自太阳的方向光。

logarithmicDepthBuffer : boolean

是否使用对数深度缓冲区。启用此选项将允许在多视锥体中减少视锥体数量, 提高性能。此属性依赖于 fragmentDepth 的支持。

logarithmicDepthFarToNearRatio : number

使用对数深度缓冲时,多视锥体的远近比率。

此值用于为多视锥体的每个视锥体创建近和远值。仅在 Scene#logarithmicDepthBuffertrue 时使用。当 logarithmicDepthBufferfalse 时,使用 Scene#farToNearRatio

Default Value: 1e9
确定 2D 地图是否可旋转,或是否可以在水平方向上无限滚动。
获取在 2D 和哥伦布视图模式下使用的地图投影。
Default Value: new GeographicProjection()

readonly maximumAliasedLineWidth : number

此 WebGL 实现支持的最大别名线宽(以像素为单位)。至少为 1。
See:
  • glGet with ALIASED_LINE_WIDTH_RANGE.

readonly maximumCubeMapSize : number

此 WebGL 实现支持的一个立方体贴图的边长度(以像素为单位)。至少为 16。
See:
  • glGet with GL_MAX_CUBE_MAP_TEXTURE_SIZE.

maximumRenderTimeChange : number

如果 Scene#requestRenderModetrue,则此值定义在请求渲染之前允许的最大模拟时间变化。 较低的值会增加渲染的帧数,而较高的值会减少渲染的帧数。如果为 undefined,则对 模拟时间的更改将永远不会请求渲染。 此值会影响场景中如光照、实体属性更新和动画等变化的渲染速度。
Default Value: 0.0
See:

minimumDisableDepthTestDistance : number

相机在其中禁用深度测试的距离,例如,防止与地形的剪切。设置为零时,深度测试应始终 应用。当小于零时,深度测试应永远不应用。为广告牌、标签或点设置的 disableDepthTestDistance 属性将覆盖此值。
Default Value: 0.0
获取或设置场景的当前模式。
Default Value: SceneMode.SCENE3D
Default Value: undefined
在场景过渡完成时触发的事件。
Default Value: Event()
在场景过渡开始时触发的事件。
Default Value: Event()
2D/哥伦布视图与 3D 之间的当前变换过渡时间, 其中 0.0 表示 2D 或哥伦布视图,1.0 表示 3D。
Default Value: 1.0

msaaSamples : number

多重采样抗锯齿的采样率(值大于 1 启用 MSAA)。
Default Value: 4

readonly msaaSupported : boolean

如果场景的上下文支持 MSAA,则返回 true

nearToFarDistance2D : number

确定 2D 中多视锥体每个视锥体的一致深度大小(以米为单位)。如果靠近表面的图元或模型出现 Z 争斗,减小此值将消除该伪影,但会降低性能。 另一方面,增加此值将提高性能,但可能会导致靠近表面的图元之间发生 Z 争斗。
Default Value: 1.75e6

readonly orderIndependentTranslucency : boolean

获取场景是否启用了顺序无关半透明度。 注意,这仅反映原始构造选项,还有其他因素可能 阻止在给定系统配置上起作用。

readonly pickPositionSupported : boolean

如果支持 Scene#pickPosition 函数,则返回 true
See:

pickTranslucentDepth : boolean

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);
应用于最终渲染的后期处理效果。
获取在场景渲染后立即引发的事件。事件的订阅者将接收场景实例作为第一个参数,当前时间作为第二个参数。
See:
获取在场景更新后立即引发的事件,场景渲染之前。事件的订阅者将接收场景实例作为第一个参数,当前时间作为第二个参数。
See:
获取在场景更新后立即引发的事件,场景渲染之前。事件的订阅者将接收场景实例作为第一个参数,当前时间作为第二个参数。
See:
获取将在场景更新或渲染之前引发的事件。事件的订阅者将接收场景实例作为第一个参数,当前时间作为第二个参数。
See:
获取原始集合的集合。

readonly renderError : Event

获取在 render 函数内抛出错误时引发的事件。场景实例和抛出的错误是传递给事件处理程序的唯一两个参数。 默认情况下,错误在此事件引发后不会被再次抛出,但可以通过设置 rethrowRenderErrors 属性来更改。

requestRenderMode : boolean

true 时,仅在根据场景内的变化需要时才会渲染帧。 启用此选项将提高应用程序的性能,但需要在此模式下使用 Scene#requestRender 显式渲染新帧。在 API 的其他部分对场景进行更改后,在许多情况下这将是必要的。
Default Value: false
See:

rethrowRenderErrors : boolean

render 中发生的异常总是会被捕获,以便触发 renderError 事件。如果此属性为 true,在事件触发后会重新抛出错误。 如果此属性为 false,render 函数将在触发事件后正常返回。
Default Value: false

readonly sampleHeightSupported : boolean

如果支持 Scene#sampleHeightScene#sampleHeightMostDetailed 函数,则返回 true
See:

readonly scene3DOnly : boolean

获取场景是否优化为仅用于 3D 视图。

readonly screenSpaceCameraController : ScreenSpaceCameraController

获取相机输入处理的控制器。
场景光源的阴影图。当启用时,模型、图元和地球可能会投射和接收阴影。
绕地球绘制的天空大气层。
Default Value: undefined
用于绘制星星的 SkyBox
Default Value: undefined
See:

specularEnvironmentMaps : string

指向包含 PBR 模型的基于图像照明的高光环境贴图和卷积 mipmaps 的 KTX2 文件的 URL。

readonly specularEnvironmentMapsSupported : boolean

返回 true 如果支持镜面环境贴图。
See:

sphericalHarmonicCoefficients : Array.<Cartesian3>

用于 PBR 模型的基于图像照明的球面调和系数。

splitPosition : number

获取或设置分隔器在视口中的位置。有效值介于 0.0 和 1.0 之间。
Sun
Default Value: undefined
启用时对太阳使用辉光滤镜。
Default Value: true
提供地球表面几何结构的地形提供程序。

readonly terrainProviderChanged : Event

获取地形提供程序更改时引发的事件

useDepthPicking : boolean

true 时,启用使用深度缓冲进行拾取。
Default Value: true
true 时,将场景拆分为两个视口,左右眼具有立体视图。 用于纸板和 WebVR。
Default Value: false

verticalExaggeration : number

场景的垂直夸张。 设置为 1.0 时,不应用夸张。
Default Value: 1.0

verticalExaggerationRelativeHeight : number

场景垂直夸张的参考高度。 设置为 0.0 时,夸张相对于椭球体表面应用。
Default Value: 0.0

Methods

cartesianToCanvasCoordinates(position, result)Cartesian2

将笛卡尔坐标中的位置转换为画布坐标。通常用于将 HTML 元素放置在与场景中对象相同的屏幕位置。
Name Type Description
position Cartesian3 符卡尔坐标中的位置。
result Cartesian2 optional 可选对象,用于返回转换为画布坐标的输入位置。
Returns:
修改后的结果参数或新的二维笛卡尔实例(如果未提供);如果输入位置接近椭球体中心,则可能为 undefined
Example:
// Output the canvas position of longitude/latitude (0, 0) every time the mouse moves.
const scene = widget.scene;
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> optional 不用于夹紧的原始对象、实体或 3D 瓦片特征的列表。
width number 0.1 optional 交叉体积的宽度,以米为单位。
result Cartesian3 optional 一个可选对象,用于返回夹紧后的位置。
Returns:
修改后的结果参数或新的三维笛卡尔实例(如果未提供);如果没有可夹紧到的场景几何,则可能为 undefined
Throws:
  • DeveloperError : clampToHeight 仅在 3D 模式下支持。
  • DeveloperError : clampToHeight 需要深度纹理支持。检查 clampToHeightSupported。
Example:
// 将实体夹紧到底层场景几何
const position = entity.position.getValue(Cesium.JulianDate.now());
entity.position = viewer.scene.clampToHeight(position);
See:

clampToHeightMostDetailed(cartesians, objectsToExclude, width)Promise.<Array.<Cartesian3>>

以场景中 3D 瓦片集的最大细节级别异步发起 Scene#clampToHeight 查询,针对一组 Cartesian3 位置。 返回一个在查询完成时被解析的承诺。每个位置将在原地修改。 如果无法夹紧某个位置,因为该位置没有可用于采样的几何,或发生其他错误,则数组中的元素将被设置为未定义。
Name Type Default Description
cartesians Array.<Cartesian3> 要更新的笛卡尔位置,包含夹紧后的位置。
objectsToExclude Array.<Object> optional 不用于夹紧的原始对象、实体或 3D 瓦片特征的列表。
width number 0.1 optional 交叉体积的宽度,以米为单位。
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:
立即完成一个正在进行的过渡。
销毁此对象持有的 WebGL 资源。销毁对象允许确定性地 释放 WebGL 资源,而不是依赖垃圾收集器来销毁该对象。

一旦对象被销毁,就不应再使用;调用除 isDestroyed 之外的任何函数将导致 DeveloperError 异常。因此, 将返回值(undefined)赋值给对象,如示例中所示。
Throws:
Example:
scene = scene && scene.destroy();
See:

drillPick(windowPosition, limit, width, height)Array.<any>

返回一个对象列表,每个对象包含一个 `primitive` 属性,表示在特定窗口坐标位置的所有原始对象。 其他属性可能会根据原始对象的类型被设置,用于进一步识别被选中的对象。列表中的原始对象按照 它们在场景中的视觉顺序排序(从前到后)。
Name Type Default Description
windowPosition Cartesian2 要进行拾取的窗口坐标。
limit number optional 如果提供,则在收集到如此多个拾取后停止钻取。
width number 3 optional 拾取矩形的宽度。
height number 3 optional 拾取矩形的高度。
Returns:
一个对象数组,每个对象包含一个被拾取的原始对象。
Throws:
Example:
const pickedObjects = scene.drillPick(new Cesium.Cartesian2(100.0, 200.0));
See:

getCompressedTextureFormatSupported(format)boolean

确定是否支持压缩纹理格式。
Name Type Description
format string 纹理格式。可以是格式的名称或 WebGL 扩展名称,例如 s3tc 或 WEBGL_compressed_texture_s3tc。
Returns:
是否支持该格式。

isDestroyed()boolean

如果该对象已被销毁,则返回 true;否则返回 false。

如果该对象已被销毁,则不应使用;调用除 isDestroyed 之外的任何函数将导致 DeveloperError 异常。
Returns:
true 如果该对象已被销毁;否则返回 false
See:

morphTo2D(duration)

异步地将场景过渡到 2D 模式。
Name Type Default Description
duration number 2.0 optional 过渡动画完成的时间,以秒为单位。

morphTo3D(duration)

异步地将场景过渡到 3D 模式。
Name Type Default Description
duration number 2.0 optional 过渡动画完成的时间,以秒为单位。

morphToColumbusView(duration)

异步地将场景过渡到哥伦布视图模式。
Name Type Default Description
duration number 2.0 optional 过渡动画完成的时间,以秒为单位。

pick(windowPosition, width, height)object

返回一个包含 `primitive` 属性的对象,该属性包含在特定窗口坐标下场景中的第一个(最上面)原始对象, 如果该位置没有对象,则返回未定义。其他属性可能会根据原始对象的类型设置, 可以用来进一步识别所选对象。

当选择 3D 瓦片集的一个特征时,pick 返回一个 Cesium3DTileFeature 对象。

Name Type Default Description
windowPosition Cartesian2 Window coordinates to perform picking on.
width number 3 optional Width of the pick rectangle.
height number 3 optional Height of the pick rectangle.
Returns:
Object containing the picked primitive.
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);

pickMetadata(windowPosition, schemaId, className, propertyName)

在给定窗口位置处拾取元数据值。
Name Type Description
windowPosition Cartesian2 要进行拾取的窗口坐标。
schemaId string | undefined 要从中拾取值的元数据模式的 ID。 如果此项为 `undefined`,则将从匹配给定类名和属性名称的对象中拾取值, 而不考虑模式 ID。
className string 要从中拾取值的元数据类名称。
propertyName string 要从中拾取值的元数据属性名称。
Returns:
元数据值
Experimental

该功能尚未最终确定,可能会根据 Cesium 的标准弃用政策而发生变化

pickMetadataSchema(windowPosition)MetadataSchema

拾取给定位置处对象的元数据模式。
Name Type Description
windowPosition Cartesian2 要进行拾取的窗口坐标。
Returns:
元数据模式;如果在给定位置没有与之关联的元数据对象,则返回 `undefined`。
Experimental

该功能尚未最终确定,可能会根据 Cesium 的标准弃用政策而发生变化

pickPosition(windowPosition, result)Cartesian3

返回根据深度缓冲区和窗口位置重建的笛卡尔位置。

从深度缓冲区在 2D 中重建的位置可能与在 3D 和哥伦布视图中重建的位置略有不同。 这是由于透视投影和正交投影的深度值分布的差异造成的。

设置 Scene#pickTranslucentDepthtrue 以包括 半透明原始对象的深度;否则,这基本上是在半透明原始对象中进行拾取。

Name Type Description
windowPosition Cartesian2 要进行拾取的窗口坐标。
result Cartesian3 optional 用于存储结果的对象。
Returns:
笛卡尔位置。
Throws:
  • DeveloperError : 不支持从深度缓冲区进行拾取。检查 pickPositionSupported。

pickVoxel(windowPosition, width, height)VoxelCell|undefined

返回在特定窗口坐标处渲染的 VoxelCell, 如果该位置未渲染任何体素,则返回未定义。
Name Type Default Description
windowPosition Cartesian2 要进行拾取的窗口坐标。
width number 3 optional 拾取矩形的宽度。
height number 3 optional 拾取矩形的高度。
Returns:
关于在选定位置渲染的体素单元的信息。
Example:
在左键点击时,报告该体素样本的 "color" 属性值。
handler.setInputAction(function(movement) {
  const voxelCell = scene.pickVoxel(movement.position);
  if (defined(voxelCell)) {
    console.log(voxelCell.getProperty("color"));
  }
}, Cesium.ScreenSpaceEventType.LEFT_CLICK);
Experimental

该功能尚未最终确定,可能会根据 Cesium 的标准弃用政策而发生变化

更新并渲染场景。通常不需要直接调用此函数, 因为 CesiumWidget 会自动执行此操作。
Name Type Description
time JulianDate optional 渲染时的模拟时间。
Scene#requestRenderMode 设置为 true 时请求新的渲染帧。 渲染速率不会超过 CesiumWidget#targetFrameRate
See:

sampleHeight(position, objectsToExclude, width)number

返回给定地图位置处场景几何的高度,如果没有 场景几何可用于采样高度,则返回 undefined。输入位置的高度将被忽略。可以用于将对象固定到 地球、3D 瓦片或场景中的原始对象。

此函数仅从当前视图中渲染的地球瓦片和 3D 瓦片采样高度。仍然会从所有其他 原始对象采样高度,无论它们的可见性如何。

Name Type Default Description
position Cartographic 要从中采样高度的地图位置。
objectsToExclude Array.<Object> optional 不用于采样高度的原始对象、实体或 3D 瓦片特征的列表。
width number 0.1 optional 交叉体积的宽度,以米为单位。
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>>

以场景中 3D 瓦片集的最大细节级别异步发起 Scene#sampleHeight 查询,针对一组 Cartographic 位置。 输入位置的高度将被忽略。返回一个在查询完成时被解析的承诺。每个点的高度将在原地修改。 如果无法确定高度,因为该位置没有可用于采样的几何,或发生其他错误,则高度将被设置为未定义。
Name Type Default Description
positions Array.<Cartographic> 要更新的地图位置,包含采样后的高度。
objectsToExclude Array.<Object> optional 不用于采样高度的原始对象、实体或 3D 瓦片特征的列表。
width number 0.1 optional 交叉体积的宽度,以米为单位。
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 和 positions[1].height 已被更新。
    // updatedPositions 只是对 positions 的引用。
});
See:

setTerrain(terrain)Terrain

更新提供地球表面几何的地形。
Name Type Description
terrain Terrain 地形提供程序异步助手
Returns:
terrain 地形提供程序异步助手
Examples:
// Use Cesium World Terrain
scene.setTerrain(Cesium.Terrain.fromWorldTerrain());
// Use a custom terrain provider
const terrain = new Cesium.Terrain(Cesium.CesiumTerrainProvider.fromUrl("https://myTestTerrain.com"));
scene.setTerrain(terrain);

terrain.errorEvent.addEventListener(error => {
  alert(`Encountered an error while creating terrain! ${error}`);
});
需要帮助?获得答案的最快方法是来自社区和团队 Cesium Forum.