CesiumWidget

new Cesium.CesiumWidget(container, options)

包含 Cesium 场景的部件。
Name Type Description
container Element | string 包含此部件的 DOM 元素或 ID。
options object optional 具有以下属性的对象:
Name Type Default Description
clock Clock new Clock() optional 用于控制当前时间的时钟。
shouldAnimate boolean false optional 如果为 true,时钟将默认尝试推进模拟时间,否则为 false
ellipsoid Ellipsoid Ellipsoid.default optional 默认椭球体。
baseLayer ImageryLayer | false ImageryLayer.fromWorldImagery() optional 应用于地球的最底层影像图层。如果设置为 false,则不添加影像提供者。
terrainProvider TerrainProvider new EllipsoidTerrainProvider(options.ellipsoid) optional 地形提供者。
terrain Terrain optional 处理异步地形提供者的地形对象。仅当 options.terrainProvider 未定义时才能指定。
skyBox SkyBox | false optional 用于渲染星星的天空盒。当 undefined 且使用 WGS84 椭球体时,使用默认星星。如果设置为 false,则不添加天空盒、太阳或月亮。
skyAtmosphere SkyAtmosphere | false optional 蓝天和地球边缘的光晕。使用默认椭球体时启用。设置为 false 以关闭。
sceneMode SceneMode SceneMode.SCENE3D optional 初始场景模式。
scene3DOnly boolean false optionaltrue 时,每个几何实例将仅在 3D 中渲染以节省 GPU 内存。
orderIndependentTranslucency boolean true optional 如果为 true 且配置支持,则使用顺序无关透明度。
mapProjection MapProjection new GeographicProjection(options.ellipsoid) optional 在 2D 和哥伦布视图模式中使用的地图投影。
globe Globe | false new Globe(options.ellipsoid) optional 场景中使用的地球。如果设置为 false,则不添加地球,且天空大气默认隐藏。
useDefaultRenderLoop boolean true optional 如果为 true,此部件应控制渲染循环,否则为 false。
useBrowserRecommendedResolution boolean true optional 如果为 true,则以浏览器推荐的分辨率渲染并忽略 window.devicePixelRatio
targetFrameRate number optional 使用默认渲染循环时的目标帧率。
showRenderLoopErrors boolean true optional 如果为 true,当发生渲染循环错误时,此部件将自动向用户显示包含错误的 HTML 面板。
automaticallyTrackDataSourceClocks boolean true optional 如果为 true,此部件将自动跟踪新添加的 DataSource 的时钟设置,如果 DataSource 的时钟发生变化则更新。如果要独立配置时钟,请设置为 false。
contextOptions ContextOptions optional 传递给 Scene 的上下文和 WebGL 创建属性。
creditContainer Element | string optional 将包含 CreditDisplay 的 DOM 元素或 ID。如果未指定,则版权信息将添加到部件本身的底部。
creditViewport Element | string optional 将包含由 CreditDisplay 创建的版权弹出窗口的 DOM 元素或 ID。如果未指定,它将出现在部件本身上方。
dataSources DataSourceCollection new DataSourceCollection() optional 由此部件可视化的数据源集合。如果提供此参数,则假定该实例由调用者拥有,并且在部件销毁时不会被销毁。
shadows boolean false optional 确定是否由光源投射阴影。
terrainShadows ShadowMode ShadowMode.RECEIVE_ONLY optional 确定地形是否从光源投射或接收阴影。
mapMode2D MapMode2D MapMode2D.INFINITE_SCROLL optional 确定 2D 地图是否可旋转或可以在水平方向上无限滚动。
blurActiveElementOnCanvasFocus boolean true optional 如果为 true,当单击部件的画布时,活动元素将失去焦点。当单击画布仅用于检索位置或实体数据而不实际意味着将画布设置为活动元素时,将此设置为 false 很有用。
requestRenderMode boolean false optional 如果为 true,则仅当场景中的更改确定需要时才会渲染帧。启用可提高应用程序性能,但需要使用 Scene#requestRender 在此模式下显式渲染新帧。在对 API 的其他部分中的场景进行更改后,在许多情况下这将是有必要的。参见 通过显式渲染提高性能
maximumRenderTimeChange number 0.0 optional 如果 requestRenderMode 为 true,则此值定义在请求渲染之前允许的最大模拟时间变化。参见 通过显式渲染提高性能
msaaSamples number 4 optional 如果提供,此值控制多重采样抗锯齿的速率。典型的多重采样率为每个像素 2、4,有时为 8 个样本。更高的 MSAA 采样率可能会影响性能,以换取改进的视觉质量。此值仅适用于支持多重采样渲染目标的 WebGL2 上下文。设置为 1 以禁用 MSAA。
Throws:
Example:
// 对于每个示例,在 HTML 头部包含 CesiumWidget.css 样式表的链接,
// 并在正文中包含:<div id="cesiumContainer"></div>

// 没有地形和默认 Bing Maps 影像提供者的部件。
const widget = new Cesium.CesiumWidget("cesiumContainer");

// 使用 ion 影像和 Cesium World Terrain 的部件。
const widget2 = new Cesium.CesiumWidget("cesiumContainer", {
    baseLayer: Cesium.ImageryLayer.fromWorldTerrain(),
    terrain: Cesium.Terrain.fromWorldTerrain()
    skyBox: new Cesium.SkyBox({
      sources: {
        positiveX: "stars/TychoSkymapII.t3_08192x04096_80_px.jpg",
        negativeX: "stars/TychoSkymapII.t3_08192x04096_80_mx.jpg",
        positiveY: "stars/TychoSkymapII.t3_08192x04096_80_py.jpg",
        negativeY: "stars/TychoSkymapII.t3_08192x04096_80_my.jpg",
        positiveZ: "stars/TychoSkymapII.t3_08192x04096_80_pz.jpg",
        negativeZ: "stars/TychoSkymapII.t3_08192x04096_80_mz.jpg"
      }
    }),
    // 使用 Web Mercator 投影显示哥伦布视图地图
    sceneMode: Cesium.SceneMode.COLUMBUS_VIEW,
    mapProjection: new Cesium.WebMercatorProjection()
});
Demo:

Members

allowDataSourcesToSuspendAnimation : boolean

获取或设置数据源是否可以暂时暂停动画,以避免向用户显示不完整的画面。 例如,如果异步图元正在后台处理,时钟将不会前进,直到几何图形准备就绪。
获取相机。

readonly canvas : HTMLCanvasElement

获取画布。
获取时钟。
获取或设置要与部件的时钟一起跟踪的数据源。

readonly container : Element

获取父容器。

readonly creditContainer : Element

获取版权容器。
Manages the list of credits to display on screen and in the lightbox.

readonly creditViewport : Element

获取版权视口。
获取用于 DataSource 可视化的显示。
获取要可视化的 DataSource 实例集合。
获取场景的默认椭球体。
获取未绑定到特定数据源的实体集合。 这是 dataSourceDisplay.defaultDataSource.entities 的快捷方式。
获取将在地球上渲染的影像图层集合。

resolutionScale : number

获取或设置渲染分辨率的缩放因子。小于 1.0 的值可以在性能较弱的设备上提高性能, 而大于 1.0 的值将以更高的分辨率渲染然后缩小,从而提高视觉保真度。 例如,如果部件布局大小为 640x480,将此值设置为 0.5 将导致场景以 320x240 渲染然后放大, 而将其设置为 2.0 将导致场景以 1280x960 渲染然后缩小。
Default Value: 1.0
获取场景。
获取屏幕空间事件处理器。

targetFrameRate : number

获取或设置当 useDefaultRenderLoop 为 true 时部件的目标帧率。 如果未定义,则浏览器的 requestAnimationFrame 实现将决定帧率。 如果定义,此值必须大于 0。高于底层 requestAnimationFrame 实现的值将不起作用。
为地球提供表面几何的地形提供者。
获取或设置当前被相机跟踪的实体实例。

readonly trackedEntityChanged : Event

获取当被跟踪的实体更改时引发的事件。

useBrowserRecommendedResolution : boolean

布尔标志,指示是否使用浏览器推荐的分辨率。 如果为 true,则忽略浏览器的设备像素比并使用 1.0,实际上基于 CSS 像素而不是设备像素进行渲染。 这可以在具有高像素密度的性能较弱的设备上提高性能。当为 false 时,渲染将使用设备像素。 无论此标志是 true 还是 false,CesiumWidget#resolutionScale 仍将生效。
Default Value: true

useDefaultRenderLoop : boolean

获取或设置此部件是否应控制渲染循环。 如果为 true,部件将使用 requestAnimationFrame 来执行部件的渲染和调整大小,以及驱动模拟时钟。 如果设置为 false,您必须手动调用 resizerender 方法作为自定义渲染循环的一部分。 如果在渲染期间发生错误,ScenerenderError 事件将被引发,并且此属性将被设置为 false。 错误发生后,必须将其设置回 true 才能继续渲染。

Methods

销毁部件。如果从布局中永久移除部件,应调用此方法。

flyTo(target, options)Promise.<boolean>

飞行相机到提供的实体、实体数组或数据源。 如果数据源仍在加载过程中或可视化仍在加载中,此方法会等待数据准备就绪后再执行飞行。

偏移量是位于边界球体中心处的局部东-北-上参考系中的航向/俯仰/距离。 航向和俯仰角在局部东-北-上参考系中定义。 航向是从 y 轴开始的角度,并朝向 x 轴增加。俯仰是从 xy 平面开始的旋转。正俯仰角 在平面之上。负俯仰角在平面之下。距离是距中心的距离。如果距离为 零,将计算一个距离,使整个边界球体都可见。

在 2D 中,必须是俯视图。相机将放置在目标上方向下看。在目标上方的 高度将是距离。航向将根据偏移量确定。如果无法从偏移量 确定航向,则航向将为北。

Name Type Description
target Entity | Array.<Entity> | EntityCollection | DataSource | ImageryLayer | Cesium3DTileset | TimeDynamicPointCloud | Promise.<(Entity|Array.<Entity>|EntityCollection|DataSource|ImageryLayer|Cesium3DTileset|TimeDynamicPointCloud|VoxelPrimitive|BufferPrimitiveCollection.<BufferPrimitive>)> 要查看的实体、实体数组、实体集合、数据源、Cesium3DTileset、点云或影像图层。您也可以传递一个解析为上述类型之一的 Promise。
options object optional 具有以下属性的对象:
Name Type Default Description
duration number 3.0 optional 飞行持续时间(秒)。
maximumHeight number optional 飞行峰值的最大高度。
offset HeadingPitchRange optional 在以目标为中心的局部东-北-上参考系中距目标的偏移量。
Returns:
如果飞行成功则解析为 true 的 Promise,如果目标当前未在场景中可视化或飞行被取消则解析为 false。 //TODO: 清理实体提及

isDestroyed()boolean

Returns:
如果对象已被销毁则返回 true,否则返回 false。
渲染场景。除非 useDefaultRenderLoop 设置为 false,否则会自动调用此函数;
更新画布大小、相机纵横比和视口大小。 除非 useDefaultRenderLoop 设置为 false,否则会根据需要自动调用此函数。

showErrorPanel(title, message, error)

向用户显示一个错误面板,包含标题和更详细的错误消息, 可以使用"确定"按钮关闭。如果在构建部件时 showRenderLoopErrors 不为 false, 则当发生渲染循环错误时,此面板会自动显示。
Name Type Description
title string 要在错误面板上显示的标题。此字符串被解释为文本。
message string optional 在详细错误信息之前显示的面向用户的有用消息。此字符串被解释为 HTML。
error string optional 要在错误面板上显示的错误。此字符串使用 formatError 格式化,然后作为文本显示。

zoomTo(target, offset)Promise.<boolean>

异步设置相机以查看提供的实体、实体数组或数据源。 如果数据源仍在加载过程中或可视化仍在加载中,此方法会等待数据准备就绪后再执行缩放。

偏移量是位于边界球体中心处的局部东-北-上参考系中的航向/俯仰/距离。 航向和俯仰角在局部东-北-上参考系中定义。 航向是从 y 轴开始的角度,并朝向 x 轴增加。俯仰是从 xy 平面开始的旋转。正俯仰角 在平面之上。负俯仰角在平面之下。距离是距中心的距离。如果距离为 零,将计算一个距离,使整个边界球体都可见。

在 2D 中,必须是俯视图。相机将放置在目标上方向下看。在目标上方的 高度将是距离。航向将根据偏移量确定。如果无法从偏移量 确定航向,则航向将为北。

Name Type Description
target Entity | Array.<Entity> | EntityCollection | DataSource | ImageryLayer | Cesium3DTileset | TimeDynamicPointCloud | Promise.<(Entity|Array.<Entity>|EntityCollection|DataSource|ImageryLayer|Cesium3DTileset|TimeDynamicPointCloud|VoxelPrimitive|BufferPrimitiveCollection.<BufferPrimitive>)> 要查看的实体、实体数组、实体集合、数据源、Cesium3DTileset、点云或影像图层。您也可以传递一个解析为上述类型之一的 Promise。
offset HeadingPitchRange optional 在局部东-北-上参考系中距实体中心的偏移量。
Returns:
如果缩放成功则解析为 true 的 Promise,如果目标当前未在场景中可视化或缩放被取消则解析为 false。
Need help? The fastest way to get answers is from the community and team on the Cesium Forum.