CesiumWidget

new Cesium.CesiumWidget(container, options)

一个包含 Cesium 场景的 widget。
Name Type Description
container Element | string 将包含该 widget 的 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,则不会添加 skyBox、Sun 或 Moon。
skyAtmosphere SkyAtmosphere | false optional 蓝色的天空,以及地球边缘周围的光晕。当使用默认椭球体时启用。设置为 false 可将其关闭。
sceneMode SceneMode SceneMode.SCENE3D optional 初始场景模式。
scene3DOnly boolean false optional 当为 true 时,每个几何实例将仅在 3D 中渲染,以节省 GPU 内存。
orderIndependentTranslucency boolean true optional 如果为 true 且配置支持,则使用顺序无关的半透明。
mapProjection MapProjection new GeographicProjection(options.ellipsoid) optional 在 2D 和 Columbus View 模式下使用的地图投影。
globe Globe | false new Globe(options.ellipsoid) optional 场景中使用的地球。如果设置为 false,则不会添加地球,且天空大气默认隐藏。
useDefaultRenderLoop boolean true optional true 表示此 widget 应控制渲染循环,false 表示不控制。
useBrowserRecommendedResolution boolean true optional 如果为 true,则以浏览器推荐的分辨率渲染,并忽略 window.devicePixelRatio
targetFrameRate number optional 使用默认渲染循环时的目标帧率。
showRenderLoopErrors boolean true optional 如果为 true,则当发生渲染循环错误时,此 widget 会自动向用户显示一个包含该错误的 HTML 面板。
automaticallyTrackDataSourceClocks boolean true optional 如果为 true,此 widget 会自动跟踪新添加的 DataSources 的时钟设置,并在 DataSource 的时钟发生变化时更新。如果要独立配置时钟,请将其设置为 false。
contextOptions ContextOptions optional 传递给 Scene 的上下文和 WebGL 创建属性。
creditContainer Element | string optional 将包含 CreditDisplay 的 DOM 元素或 ID。如果未指定,署名将添加到 widget 本身的底部。
creditViewport Element | string optional 将包含由 CreditDisplay 创建的署名弹出框的 DOM 元素或 ID。如果未指定,它将显示在 widget 本身之上。
dataSources DataSourceCollection new DataSourceCollection() optional 由该 widget 可视化的数据源集合。如果提供此参数,则假定该实例由调用方拥有,并且在 widget 被销毁时不会被销毁。
shadows boolean false optional 确定是否由光源投射阴影。
terrainShadows ShadowMode ShadowMode.RECEIVE_ONLY optional 确定地形是否从光源投射或接收阴影。
mapMode2D MapMode2D MapMode2D.INFINITE_SCROLL optional 确定 2D 地图是否可旋转,或是否可以在水平方向上无限滚动。
blurActiveElementOnCanvasFocus boolean true optional 如果为 true,则当点击 widget 的 canvas 时,活动元素将失去焦点。将此设置为 false 适用于仅点击 canvas 以获取位置或实体数据,而实际上并无意将 canvas 设置为活动元素的情况。
requestRenderMode boolean false optional 如果为 true,则仅在场景内发生变化需要时才会渲染一帧。启用可提高应用程序性能,但需要在此模式下使用 Scene#requestRender 显式渲染新帧。在对 API 的其他部分中的场景进行更改后,许多情况下都需要这样做。参见 Improving Performance with Explicit Rendering
maximumRenderTimeChange number 0.0 optional 如果 requestRenderMode 为 true,此值定义了在请求渲染之前允许的仿真时间最大变化量。参见 Improving Performance with Explicit Rendering
msaaSamples number 4 optional 如果提供此值,它将控制多重采样抗锯齿的速率。典型的多重采样率为每像素 2、4,有时为 8 个样本。较高的 MSAA 采样率可能会影响性能,但能换取更高的视觉质量。此值仅适用于支持多重采样渲染目标的 WebGL2 上下文。设置为 1 可禁用 MSAA。
Throws:
  • DeveloperError :文档中不存在 id 为 "container" 的元素。
Example:
// For each example, include a link to CesiumWidget.css stylesheet in HTML head,
// and in the body, include: <div id="cesiumContainer"></div>

// Widget with no terrain and default Bing Maps imagery provider.
const widget = new Cesium.CesiumWidget("cesiumContainer");

// Widget with ion imagery and 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"
      }
    }),
    // Show Columbus View map with Web Mercator projection
    sceneMode: Cesium.SceneMode.COLUMBUS_VIEW,
    mapProjection: new Cesium.WebMercatorProjection()
});
Demo:

Members

allowDataSourcesToSuspendAnimation : boolean

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

readonly canvas : HTMLCanvasElement

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

readonly container : Element

获取父容器。

readonly creditContainer : Element

获取署名容器。
管理要在屏幕和灯箱中显示的署名列表。

readonly creditViewport : Element

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

resolutionScale : number

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

targetFrameRate : number

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

readonly trackedEntityChanged : Event

获取当被跟踪的实体发生变化时触发的事件。

useBrowserRecommendedResolution : boolean

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

useDefaultRenderLoop : boolean

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

Methods

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

flyTo(target, options)Promise.<boolean>

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

偏移量是在以包围球中心为中心的本地东-北-上参考系中的 heading/pitch/range。 heading 和 pitch 角度定义在本地东-北-上参考系中。 heading 是从 y 轴起算、向 x 轴方向递增的角度。Pitch 是相对 xy 平面的旋转。正 pitch 角度在平面之上。负 pitch 角度在平面之下。range 是距中心的距离。如果 range 为 零,将计算一个 range 值,使整个包围球都可见。

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

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,如果目标当前未在场景中可视化或飞行被取消则解析为 false 的 Promise。//TODO: Cleanup entity mentions

isDestroyed()boolean

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

showErrorPanel(title, message, error)

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

zoomTo(target, offset)Promise.<boolean>

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

偏移量是在以包围球中心为中心的本地东-北-上参考系中的 heading/pitch/range。 heading 和 pitch 角度定义在本地东-北-上参考系中。 heading 是从 y 轴起算、向 x 轴方向递增的角度。Pitch 是相对 xy 平面的旋转。正 pitch 角度在平面之上。负 pitch 角度在平面之下。range 是距中心的距离。如果 range 为 零,将计算一个 range 值,使整个包围球都可见。

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

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,如果目标当前未在场景中可视化或缩放被取消则解析为 false 的 Promise。
需要帮助?获取答案的最快方式是在 Cesium 论坛 上向社区和团队提问。