用于构建应用程序的基本小部件。它将所有标准Cesium小部件组合到一个可重用的程序包中。始终可以通过使用mixin扩展窗口小部件,这些文件添加了对各种应用程序有用的功能。
Name | Type | Description |
---|---|---|
container
|
Element | String | 将包含窗口小部件的DOM元素或ID。 |
options
|
Viewer.ConstructorOptions | 可选 描述初始化选项的对象 |
Throws:
-
DeveloperError :ID为'容器'的元素在文档中不存在。
-
DeveloperError :options.selectedImageryProviderViewModel在不使用BaseLayerPicker小部件时不可用,请指定options.imageryProvider。
-
DeveloperError :options.selectedTerrainProviderViewModel在不使用BaseLayerPicker小部件时不可用,请指定options.terrainProvider。
Example:
//Initialize the viewer widget with several custom options and mixins.
var viewer = new Cesium.Viewer('cesiumContainer', {
//Start in Columbus Viewer
sceneMode : Cesium.SceneMode.COLUMBUS_VIEW,
//Use Cesium World Terrain
terrainProvider : Cesium.createWorldTerrain(),
//Hide the base layer picker
baseLayerPicker : false,
//Use OpenStreetMaps
imageryProvider : new Cesium.OpenStreetMapImageryProvider({
url : 'https://a.tile.openstreetmap.org/'
}),
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
mapProjection : new Cesium.WebMercatorProjection()
});
//Add basic drag and drop functionality
viewer.extend(Cesium.viewerDragDropMixin);
//Show a pop-up alert if we encounter an error when processing a dropped file
viewer.dropError.addEventListener(function(dropHandler, name, error) {
console.log(error);
window.alert(error);
});
Demo:
See:
Members
获取或设置数据源是否可以临时暂停动画,以避免向用户显示不完整的图片。例如,如果异步原语正在在几何图形准备就绪之前,时钟不会提前。
readonly animation : Animation
获取动画小部件。
readonly baseLayerPicker : BaseLayerPicker
获取BaseLayerPicker。
获取包含以下内容的窗口底部区域的DOM元素:
CreditDisplay
以及其他可能的东西。
readonly camera : Camera
获取相机。
获取画布。
readonly cesiumWidget : CesiumWidget
获取CesiumWidget。
readonly clock : Clock
获取时钟。
clockTrackedDataSource : DataSource
获取或设置要与查看者的时钟一起跟踪的数据源。
readonly clockViewModel : ClockViewModel
获取时钟视图模型。
获取父容器。
readonly dataSourceDisplay : DataSourceDisplay
获取用于
DataSource
可视化的显示。
readonly dataSources : DataSourceCollection
获取要可视化的
DataSource
实例集。
readonly entities : EntityCollection
获取未绑定到特定数据源的实体的集合。这是
dataSourceDisplay.defaultDataSource.entities
的快捷方式。
readonly fullscreenButton : FullscreenButton
获取FullscreenButton。
readonly geocoder : Geocoder
获取地理编码器。
readonly homeButton : HomeButton
获取'主页'按钮。
readonly imageryLayers : ImageryLayerCollection
获取将在地球上渲染的图像图层的集合。
readonly infoBox : InfoBox
获取信息框。
readonly navigationHelpButton : NavigationHelpButton
获取NavigationHelpButton。
readonly postProcessStages : PostProcessStageCollection
获取后处理阶段。
readonly projectionPicker : ProjectionPicker
获取ProjectionPicker。
获取或设置渲染分辨率的缩放比例。小于1.0的值可以改善性能不佳的设备上的性能,而值大于1.0则将以更高的速度呈现分辨率,然后缩小比例,从而提高视觉保真度。例如,如果窗口小部件的尺寸为640x480,则将此值设置为0.5将导致场景以320x240渲染,然后在设置时按比例放大设置为2.0将导致场景以1280x960渲染,然后按比例缩小。
-
Default Value:
1.0
readonly scene : Scene
获取场景。
readonly sceneModePicker : SceneModePicker
获取SceneModePicker。
readonly screenSpaceEventHandler : ScreenSpaceEventHandler
获取屏幕空间事件处理程序。
selectedEntity : Entity |undefined
获取或设置要为其显示选择指示符的对象实例。
readonly selectedEntityChanged : Event
获取所选实体更改时引发的事件。
readonly selectionIndicator : SelectionIndicator
获取选择指示器。
readonly shadowMap : ShadowMap
获取场景的阴影贴图
确定阴影是否由光源投射。
在
useDefaultRenderLoop
时获取或设置小部件的目标帧速率是真的。如果未定义,则为浏览器的
requestAnimationFrame
实现确定帧频。如果定义,则该值必须大于0。更高的值比基础的requestAnimationFrame实现无效。
terrainProvider : TerrainProvider
地形提供者为地球提供表面几何形状。
terrainShadows : ShadowMode
确定地形是投射光源还是投射阴影。
readonly timeline : Timeline
获取时间轴小部件。
trackedEntity : Entity |undefined
获取或设置相机当前正在跟踪的Entity实例。
readonly trackedEntityChanged : Event
获取当被跟踪实体更改时引发的事件。
布尔标志,指示是否使用浏览器推荐的分辨率。如果为true,则会忽略浏览器的设备像素比率,而改用1.0,根据CSS像素而不是设备像素有效地渲染。这样可以改善在像素密度较高的功能较弱的设备上的性能。如果为假,则渲染将以设备像素为单位。
Viewer#resolutionScale
仍然会生效该标志为真或假。
-
Default Value:
true
获取或设置此小部件是否应控制渲染循环。如果设置为true,则小部件将使用
requestAnimationFrame
执行小部件的渲染和调整大小,以及驱动模拟时钟。如果设置为false,则必须手动调用
resize
,
render
方法作为自定义渲染循环的一部分。如果在渲染过程中发生错误,则
Scene
renderError
事件将引发,并且此属性将设置为false。必须将其设置为true才能继续渲染错误之后。
readonly vrButton : VRButton
获取VRButton。
Methods
销毁小部件。如果永久应调用从布局中删除小部件。
使用提供的mixin扩展基本查看器功能。混合可能会添加其他属性,功能或其他行为到提供的查看器实例。
Name | Type | Description |
---|---|---|
mixin
|
Viewer.ViewerMixin | 要添加到该实例的查看器混合。 |
options
|
Object | 可选 options对象将传递给mixin函数。 |
See:
将相机移至提供的一个或多个实体或数据源。如果数据源仍在加载过程中,或者可视化仍在加载中,此方法在执行飞行之前等待数据准备就绪。
偏移量是在以边界球中心为中心的局部东北向上参考框中的航向/俯仰/范围。航向角和俯仰角是在局部的东西向北参考系中定义的。航向是从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 )> | 实体,实体阵列,实体集合,数据源,Cesium3DTileset,点云或要查看的图像层。您还可以传递一个可以解决前面提到的一种类型的诺言。 | ||||||||||||||||
options
|
Object |
可选
具有以下属性的对象:
|
Returns:
如果飞行成功则解析为true的承诺,如果当前未在场景中可视化目标或取消飞行,则为false的Promise。 //TODO:清理实体提及
这迫使窗口小部件重新考虑其布局,包括窗口小部件尺寸和信用位置。
Returns:
如果对象已销毁,则为true,否则为false。
渲染场景。该功能会自动调用除非
useDefaultRenderLoop
设置为false;
调整窗口小部件的大小以匹配容器的大小。除非需要,否则将自动调用此函数
useDefaultRenderLoop
设置为false。
异步设置摄像机以查看提供的一个或多个实体或数据源。如果数据源仍在加载过程中,或者可视化仍在加载中,此方法在执行缩放之前等待数据准备就绪。
偏移量是在以边界球中心为中心的局部东北向上参考框中的航向/俯仰/范围。航向角和俯仰角是在局部的东西向北参考系中定义的。航向是从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 )> | 实体,实体阵列,实体集合,数据源,Cesium3DTileset,点云或要查看的图像层。您还可以传递一个可以解决前面提到的一种类型的诺言。 |
offset
|
HeadingPitchRange | 可选 在本地东北向上参考系中,距实体中心的偏移量。 |
Returns:
如果缩放成功则解析为true的Promise,如果当前未在场景中可视化目标或取消缩放,则为false的Promise。
Type Definitions
Viewer构造函数的初始化选项
Properties:
Name | Type | Attributes | Default | Description |
---|---|---|---|---|
animation
|
Boolean |
<optional>
|
true | 如果设置为false,将不会创建'动画'小部件。 |
baseLayerPicker
|
Boolean |
<optional>
|
true | 如果设置为false,将不会创建BaseLayerPicker小部件。 |
fullscreenButton
|
Boolean |
<optional>
|
true | 如果设置为false,将不会创建FullscreenButton小部件。 |
vrButton
|
Boolean |
<optional>
|
false | 如果设置为true,将创建VRButton小部件。 |
geocoder
|
Boolean | Array.< GeocoderService > |
<optional>
|
true | 如果设置为false,则将不会创建Geocoder小部件。 |
homeButton
|
Boolean |
<optional>
|
true | 如果设置为false,将不会创建'主页按钮'小部件。 |
infoBox
|
Boolean |
<optional>
|
true | 如果设置为false,则不会创建InfoBox小部件。 |
sceneModePicker
|
Boolean |
<optional>
|
true | 如果设置为false,将不会创建SceneModePicker小部件。 |
selectionIndicator
|
Boolean |
<optional>
|
true | 如果设置为false,将不会创建SelectionIndicator小部件。 |
timeline
|
Boolean |
<optional>
|
true | 如果设置为false,则不会创建时间轴小部件。 |
navigationHelpButton
|
Boolean |
<optional>
|
true | 如果设置为false,将不会创建导航帮助按钮。 |
navigationInstructionsInitiallyVisible
|
Boolean |
<optional>
|
true | 如果最初应该看到导航说明,则为true;如果直到用户明确单击该按钮,则该提示不显示,否则为false。 |
scene3DOnly
|
Boolean |
<optional>
|
false |
为
true
时,每个几何实例将仅以3D渲染以节省GPU内存。
|
shouldAnimate
|
Boolean |
<optional>
|
false |
true
,否则为
false
。此选项优先于设置
Viewer#clockViewModel
。
|
clockViewModel
|
ClockViewModel |
<optional>
|
new ClockViewModel(clock) | 用于控制当前时间的时钟视图模型。 |
selectedImageryProviderViewModel
|
ProviderViewModel |
<optional>
|
当前基础影像图层的视图模型(如果未提供,则使用第一个可用的基础图层)。仅当' baseLayerPicker'设置为true时,此值才有效。 | |
imageryProviderViewModels
|
Array.< ProviderViewModel > |
<optional>
|
createDefaultImageryProviderViewModels() | 可以从BaseLayerPicker中选择的ProviderViewModels数组。仅当' baseLayerPicker'设置为true时,此值才有效。 |
selectedTerrainProviderViewModel
|
ProviderViewModel |
<optional>
|
当前基础地形图层的视图模型(如果未提供,则使用第一个可用的基础图层)。仅当' baseLayerPicker'设置为true时,此值才有效。 | |
terrainProviderViewModels
|
Array.< ProviderViewModel > |
<optional>
|
createDefaultTerrainProviderViewModels() | 可以从BaseLayerPicker中选择的ProviderViewModels数组。仅当' baseLayerPicker'设置为true时,此值才有效。 |
imageryProvider
|
ImageryProvider |
<optional>
|
createWorldImagery() | 要使用的图像提供程序。此值仅在' baseLayerPicker'设置为false时有效。 |
terrainProvider
|
TerrainProvider |
<optional>
|
new EllipsoidTerrainProvider() | 要使用的地形提供商 |
skyBox
|
SkyBox | false |
<optional>
|
用于渲染星星的天空盒。
undefined
(未定义)时,将使用默认星号。如果设置为
false
,则不会添加skyBox,Sun或Moon。
|
|
skyAtmosphere
|
SkyAtmosphere | false |
<optional>
|
蓝天,以及地球四肢的光芒。设置为
false
将其关闭。
|
|
fullscreenElement
|
Element | String |
<optional>
|
document.body | 按下全屏按钮时要置于全屏模式的元素或ID。 |
useDefaultRenderLoop
|
Boolean |
<optional>
|
true | 如果此小部件应控制渲染循环,则为true,否则为false。 |
targetFrameRate
|
Number |
<optional>
|
使用默认渲染循环时的目标帧速率。 | |
showRenderLoopErrors
|
Boolean |
<optional>
|
true | 如果为true,则在发生渲染循环错误时,此小部件将自动向包含错误的用户显示HTML面板。 |
useBrowserRecommendedResolution
|
Boolean |
<optional>
|
true |
如果为true,则以浏览器建议的分辨率渲染,并忽略
window.devicePixelRatio
。
|
automaticallyTrackDataSourceClocks
|
Boolean |
<optional>
|
true | 如果为true,则此小部件将自动跟踪新添加的数据源的时钟设置,并在数据源的时钟发生更改时进行更新。如果要独立配置时钟,请将其设置为false。 |
contextOptions
|
Object |
<optional>
|
传递给
Scene
的与
options
相对应的上下文和WebGL创建属性。 /td>
|
|
sceneMode
|
SceneMode |
<optional>
|
SceneMode.SCENE3D | 初始场景模式。 |
mapProjection
|
MapProjection |
<optional>
|
new GeographicProjection() | 在2D和Columbus视图模式下使用的地图投影。 |
globe
|
Globe |
<optional>
|
new Globe(mapProjection.ellipsoid) |
要在场景中使用的地球仪。如果设置为
false
,则不会添加任何地球仪。
|
orderIndependentTranslucency
|
Boolean |
<optional>
|
true | 如果为true,并且配置支持它,则使用顺序无关的半透明性。 |
creditContainer
|
Element | String |
<optional>
|
包含
CreditDisplay
的DOM元素或ID。如果未指定,则将功劳添加到小部件本身的底部。
|
|
creditViewport
|
Element | String |
<optional>
|
将包含
CreditDisplay
创建的弹出窗口的DOM元素或ID。如果未指定,它将显示在小部件本身上。
|
|
dataSources
|
DataSourceCollection |
<optional>
|
new DataSourceCollection() | 由小部件可视化的数据源集合。如果提供此参数, 该实例假定为调用者所有,并且在销毁查看器时也不会销毁。 |
terrainExaggeration
|
Number |
<optional>
|
1.0 | 用于放大地形的标量。请注意,地形夸张不会修改其他相对于椭球的图元。 |
shadows
|
Boolean |
<optional>
|
false | 确定阴影是否由光源投射。 |
terrainShadows
|
ShadowMode |
<optional>
|
ShadowMode.RECEIVE_ONLY | 确定地形是否投射或接收来自光源的阴影。 |
mapMode2D
|
MapMode2D |
<optional>
|
MapMode2D.INFINITE_SCROLL | 确定2D地图是可旋转的还是可以在水平方向无限滚动。 |
projectionPicker
|
Boolean |
<optional>
|
false | 如果设置为true,将创建ProjectionPicker小部件。 |
requestRenderMode
|
Boolean |
<optional>
|
false |
如果为true,则仅根据场景中的更改确定是否需要渲染帧。启用可减少应用程序的CPU/GPU使用率,并减少移动设备上的电池消耗,但需要使用
'>
Scene#requestRender
来呈现新的在此模式下显式帧。在API的其他部分对场景进行更改后,在许多情况下这是必要的。请参见
通过显式渲染提高性能
。
|
maximumRenderTimeChange
|
Number |
<optional>
|
0.0 | 如果requestRenderMode为true,则此值定义在请求渲染之前允许的最大仿真时间更改。请参见 通过显式渲染提高性能 。 |
通过附加功能扩展Viewer实例的功能。
Name | Type | Description |
---|---|---|
viewer
|
Viewer | 查看器实例。 |
options
|
Object | 选项对象将传递给mixin函数。 |