Viewer是用于构建应用程序的基础部件。它将所有标准的Cesium部件组合成一个可重用的包。
Viewer部件通常可以利用mixin来扩展,以此增加对各种应用程序有用的功能函数。
Name | Type | Description | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
container |
Element | String | 将容纳Viewer的HTML DOM 元素或ID。 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
options |
Object |
optional
对象,具有以下属性:
|
Throws:
-
DeveloperError : 文档中不存在具有该标识的"container"元素。
-
DeveloperError : 当不使用BaseLayerPicker部件时,options.selectedImageryProviderViewModel不可用,请指定options.imageryProvider。
-
DeveloperError : 当不使用BaseLayerPicker部件时,options.selectedTerrainProviderViewModel不可用,请指定options.terrainProvider。
Example:
// 使用几个自定义选项和mixin初始化viewer部件。
var viewer = new Cesium.Viewer('cesiumContainer', {
// 从哥伦布查看器(Columbus Viewer)开始
sceneMode : Cesium.SceneMode.COLUMBUS_VIEW,
// 使用Cesium世界地形
terrainProvider : Cesium.createWorldTerrain(),
// 隐藏基本图层选择器
baseLayerPicker : false,
// 使用OpenStreetMaps
imageryProvider : new Cesium.OpenStreetMapImageryProvider({
url : 'https://a.tile.openstreetmap.org/'
}),
// Use high-res stars downloaded from https://github.com/AnalyticalGraphicsInc/cesium-assets
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)投影显示哥伦布视图(Columbus View)地图
mapProjection : new Cesium.WebMercatorProjection()
});
// 添加基本的拖放功能
viewer.extend(Cesium.viewerDragDropMixin);
// 如果我们在处理一个被删除的文件时遇到错误,显示一个弹出的警告
viewer.dropError.addEventListener(function(dropHandler, name, error) {
console.log(error);
window.alert(error);
});
Demo:
See:
Members
获取或设置数据源是否可以临时暂停动画,以避免向用户显示不完整的图像。
例如,如果异步图元是在后台处理的,那么时钟在几何图形准备好之前不会前进。
readonlyanimation : Animation
获取动画(Animation)部件。
readonlybaseLayerPicker : BaseLayerPicker
获取基础图层选择器(BaseLayerPicker)。
获取窗口底部区域的DOM元素,该区域包含
CreditDisplay
和潜在的其他内容。
readonlycamera : Camera
获取相机(Camera)。
获取画布(Canvas)。
readonlycesiumWidget : CesiumWidget
获取CesiumWidget。
readonlyclock : Clock
获取时钟(Clock)。
clockTrackedDataSource : DataSource
获取或设置使用查看器时钟跟踪的数据源。
readonlyclockViewModel : ClockViewModel
获取时钟视图模型(ClockViewModel)。
获取父容器。
readonlydataSourceDisplay : DataSourceDisplay
获取用于
DataSource
可视化的显示。
readonlydataSources : DataSourceCollection
获取要显示的
DataSource
实例集。
readonlyentities : EntityCollection
获取未关联到特定数据源的实体集合。
这是访问
dataSourceDisplay.defaultDataSource.entities
的快捷方式。
readonlyfullscreenButton : FullscreenButton
获取全屏按钮(FullscreenButton)。
readonlygeocoder : Geocoder
获取地理编码(Geocoder)。
readonlyhomeButton : HomeButton
获取主画面按钮(HomeButton)。
readonlyimageryLayers : ImageryLayerCollection
获取将在地球上渲染的图像图层的集合。
readonlyinfoBox : InfoBox
获取消息盒(InfoBox)。
readonlynavigationHelpButton : NavigationHelpButton
获取导航帮助按钮(NavigationHelpButton)。
readonlypostProcessStages : PostProcessStageCollection
获取后处理阶段集合(PostProcessStageCollection)。
readonlyprojectionPicker : ProjectionPicker
获取投影选择器(ProjectionPicker)。
获取或设置渲染分辨率的比例因子。
小于1.0的值可以在功能较弱的设备上提高性能,而大于1.0的值将以更高的分辨率渲染,然后缩小比例,从而提高视觉保真度。
例如,如果部件的大小为640x480,将该值设置为0.5将导致场景以320x240的大小呈现,然后按比例放大,
而将其设置为2.0将导致场景以1280x960的大小呈现,然后按比例缩小。
-
Default Value:
1.0
readonlyscene : Scene
获取scene。
readonlysceneModePicker : SceneModePicker
获取场景模式选择器(SceneModePicker)。
readonlyscreenSpaceEventHandler : ScreenSpaceEventHandler
获取屏幕空间事件处理程序(ScreenSpaceEventHandler)。
selectedEntity : Entity
获取或设置要为其显示选择指示符的对象实例。
readonlyselectedEntityChanged : Event
获取所选实体更改时引发的事件。
readonlyselectionIndicator : SelectionIndicator
获取选择指示器(SelectionIndicator)。
readonlyshadowMap : ShadowMap
获取场景的阴影地图(ShadowMap)。
确定阴影是否由太阳投射形成。
获取或设置当
useDefaultRenderLoop
为true时,部件的目标帧率。
如果未定义,浏览器的requestAnimationFrame
实现将确定帧速率。如果定义了,这个值必须大于0。
高于底层requestAnimationFrame实现的值将不起作用。
terrainProvider : TerrainProvider
为地球提供表面几何图形的terrainProvider。
terrainShadows : ShadowMode
确定地形是否投射或阴影来自太阳。
readonlytimeline : Timeline
获取时间轴(Timeline)部件。
trackedEntity : Entity
获取或设置相机当前跟踪的实体实例。
readonlytrackedEntityChanged : Event
获取被跟踪实体更改时引发的事件。
指示是否使用浏览器的推荐分辨率的布尔值。
如果为true,则忽略浏览器的设备像素比,代之以1.0,有效地基于CSS像素而不是设备像素进行渲染。这可以提高具有高像素密度的低功能设备的性能。
当为false时,渲染将以设备像素为单位。无论这个布尔值是true还是false,
Viewer#resolutionScale
仍然有效。
-
Default Value:
false
获取或设置此部件是否应控制渲染循环。
如果设置为true,部件将使用
requestAnimationFrame
来执行部件的渲染和调整大小,以及驱动仿真时钟。
如果设置为false,您必须手动调用resize
, render
方法作为自定义渲染循环的一部分。
如果在渲染过程中出现错误,Scene
的renderError
事件将被触发,该属性将被设置为false。
必须将其设置为true,以便在发生错误后继续渲染。
readonlyvrButton : VRButton
获取VRButton。
Methods
销毁部件。如果从布局中永久删除viewer部件,则应调用。
使用提供的mixin扩展基本viewer功能。
mixin可以向提供的viewer实例添加其他属性、函数或其他行为。
Name | Type | Description |
---|---|---|
mixin |
Viewer~ViewerMixin | 要添加到此viewer实例的mixin。 |
options |
Object | optional 要传递给mixin函数的options对象。 |
See:
将相机切换到提供的实体、实体集或数据源。
如果数据源仍然在加载过程中,或者可视化仍然在加载中,则此方法将等待数据准备好后再执行飞行。
偏移量是在以包围球中心为中心的当地东北向上(east-north-up)参考坐标系中的航向/俯仰/范围(heading/pitch/range)。 航向和俯仰角是在当地的东北向上(east-north-up)参考系中确定的。 航向(heading)是从y轴向x轴递增的角度。俯仰(Pitch)是从xy平面旋转过来的。正俯仰角在平面之上。负俯仰角在平面以下。 范围是到中心的距离。如果范围为零,则计算范围使整个包围球可见。
在2D中,必须是一个自顶向下的视图。相机将被放置在目标上方向下看。目标上方的高度将是范围。 航向(heading)将从偏移量确定。如果无法从偏移量确定航向,则航向为北。
Name | Type | Description | ||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
target |
Entity | Array.<Entity> | EntityCollection | DataSource | ImageryLayer | Cesium3DTileset | TimeDynamicPointCloud | Promise.<(Entity|Array.<Entity>|EntityCollection|DataSource|ImageryLayer|Cesium3DTileset|TimeDynamicPointCloud)> | 要查看的实体、实体数组、实体集合、数据源、Cesium3DTileset、点云或图像层。您还可以传递一个promise,该promise将解析到前面提到的一种类型。 | ||||||||||||||||
options |
Object |
optional
对象,具有以下属性:
|
Returns:
飞行成功时,promise被解析为true;如果实体未在场景中可视化或飞行取消,promise被解析为false。 //TODO: Cleanup entity mentions
这迫使部件重新考虑它的布局,包括部件大小和版权的放置。
Returns:
如果对象已被销毁,则为true,否则为false。
渲染的场景。除非
useDefaultRenderLoop
设置为false,否则自动调用此函数。
调整部件的大小以匹配容器的大小。
除非
useDefaultRenderLoop
被设置为false,否则将根据需要自动调用此函数。
异步设置相机以查看提供的实体、实体集或数据源。
如果数据源仍然在加载过程中,或者可视化仍然在加载中,则此方法将等待数据准备好后再执行缩放。
偏移量是在以包围球中心为中心的当地东北向上(east-north-up)参考坐标系中的航向/俯仰/范围(heading/pitch/range)。 航向和俯仰角是在当地的东北向上(east-north-up)参考系中确定的。 航向(heading)是从y轴向x轴递增的角度。俯仰(Pitch)是从xy平面旋转过来的。正俯仰角在平面之上。负俯仰角在平面以下。 范围是到中心的距离。如果范围为零,则计算范围使整个包围球可见。
在2D中,必须是一个自顶向下的视图。相机将被放置在目标上方向下看。目标上方的高度将是范围。 航向(heading)将从偏移量确定。如果无法从偏移量确定航向,则航向为北。
Name | Type | Description |
---|---|---|
target |
Entity | Array.<Entity> | EntityCollection | DataSource | ImageryLayer | Cesium3DTileset | TimeDynamicPointCloud | Promise.<(Entity|Array.<Entity>|EntityCollection|DataSource|ImageryLayer|Cesium3DTileset|TimeDynamicPointCloud)> | 要查看的实体、实体数组、实体集合、数据源、Cesium3DTileset、点云或图像层。您还可以传递一个promise,该promise将解析到前面提到的一种类型。 |
offset |
HeadingPitchRange | optional 在本地东北方向上(east-north-up)的参考系中,从实体中心的偏移量。 |
Returns:
缩放成功时,promise被解析为true;如果实体未在场景中可视化或缩放取消,promise被解析为false。
Type Definitions
通过附加功能扩展Viewer实例的功能。
Name | Type | Description |
---|---|---|
viewer |
Viewer | viewer实例。 |
options |
Object | 要传递给mixin函数的可选对象。 |