Viewer是用于构建应用程序的基础部件,它将所有标准的Cesium部件组合成一个可重复使用的包。
viewer部件通常可以利用mixin来扩展,以此增加对各种应用程序有用的功能函数。
Name | Type | Default | Description |
---|---|---|---|
container |
Element | String | 指定容纳viewer部件的HTML元素的文档对象模型(DOM)或ID。 | |
options.clock |
Clock |
new Clock()
|
optional 用于控制当前时间的时钟。 |
options.selectedImageryProviderViewModel |
ProviderViewModel | optional 当前基础影像图层的视图模型,如若未提供,则使用第一个可用基础图层。此值仅在 options.baseLayerPicker 设置为true时有效。 | |
options.imageryProviderViewModels |
Array.<ProviderViewModel> |
createDefaultImageryProviderViewModels()
|
optional ProviderViewModels数组可从BaseLayerPicker中选择。此值仅在 options.baseLayerPicker 设置为true时有效。 |
options.selectedTerrainProviderViewModel |
ProviderViewModel | optional 当前基础地形图层的视图模型,如若未提供,则使用第一个可用基础图层。此值仅在 options.baseLayerPicker 设置为true时有效。 | |
options.terrainProviderViewModels |
Array.<ProviderViewModel> |
createDefaultTerrainProviderViewModels()
|
optional ProviderViewModels数组可从BaseLayerPicker中选择。此值仅在 options.baseLayerPicker 设置为true时有效。 |
options.imageryProvider |
ImageryProvider |
new BingMapsImageryProvider()
|
optional 使用的影像提供者。此值仅在 options.baseLayerPicker 设置为 false 时有效。 |
options.terrainProvider |
TerrainProvider |
new EllipsoidTerrainProvider()
|
optional 使用的地形提供者。 |
options.skyBox |
SkyBox | optional 用于渲染星辰的天空盒,未定义时,使用默认星辰效果。 | |
options.skyAtmosphere |
SkyAtmosphere | optional 环绕地球边缘的蓝天和光晕效果,设置为false可将其关闭。 | |
options.useDefaultRenderLoop |
Boolean |
true
|
optional 如果此部件能够控制渲染循环,设置为true,反之设置为false。 |
options.targetFrameRate |
Number | optional 使用默认渲染循环时的目标帧速率。 | |
options.showRenderLoopErrors |
Boolean |
true
|
optional 如果设置为true,发生渲染循环错误时,将自动给用户显示一个包含错误信息的HTML面板。 |
options.automaticallyTrackDataSourceClocks |
Boolean |
true
|
optional 如果设置为true,将自动跟踪新添加数据源的时钟设置,如果数据源的时钟变更,则更新。如需单独设置时钟,请将此项设置为false。 |
options.contextOptions |
ContextType |
optional
Context and WebGL 创建属性与传递给Scene 匹配的选项。增加硬件反走样功能,反走样系数msaalevel使用1到8的整数值(选择WebGL2.0时使用1、2、4、8,选择WebGPU时使用1、4),默认值为1。值越大反走样效果越好(因为用到了WebGL2.0的特性,所以requestWebgl2参数设置为true)。 |
|
options.mapProjection |
MapProjection |
new GeographicProjection()
|
optional 在二维和Columbus视图模式下所使用的地图投影。 |
options.globe |
Globe |
new Globe(mapProjection.ellipsoid)
|
optional 场景中的地球,如果此项设置为false,将不添加球体对象。 |
options.orderIndependentTranslucency |
Boolean |
true
|
optional 如果此项设置为true,并且使用设备支持,将使用与顺序无关的半透明。 |
options.creditContainer |
Element | String |
optional
指定包含CreditDisplay 信息的DOM元素或ID。如若未指定,credit信息将添加到部件底部。 |
|
options.dataSources |
DataSourceCollection |
new DataSourceCollection()
|
optional 指定由viewer部件可视化的数据源集合。如果提供此参数,实例由调用者拥有,并且viewer被销毁时此实例不被销毁。 |
options.terrainExaggeration |
Number |
1.0
|
optional 用于夸张地形的标量。请注意,设置地形夸张不会修改其它任何数据。 |
options.shadows |
Boolean |
false
|
optional 是否开启阴影。 |
options.terrainShadows |
ShadowMode |
ShadowMode.RECEIVE_ONLY
|
optional 确定地形是否投射或接受来自太阳的阴影。 |
options.mapMode2D |
MapMode2D |
MapMode2D.INFINITE_SCROLL
|
optional 确定二维地图是可旋转的或是可以在在水平方向上无限滚动。 |
options.navigation |
Boolean |
false
|
optional 是否显示导航罗盘控件。如需显示,需在初始化viewer时此项设置为true。 |
options.PerformancePreferenceMode |
PerformancePreferenceMode | optional 性能偏好模式,加载各类数据时,可设置性能或者效果优先。 |
Throws:
-
DeveloperError : 文档中不存在具有该标识的"container"元素。
-
DeveloperError : 在使用BaseLayerPicker部件时,options.imageryProvider不可用,请更改为指定options.selectedImageryProviderViewModel。
-
DeveloperError : 在使用BaseLayerPicker部件时,options.terrainProvider不可用,请更改为指定options.selectedTerrainProviderViewModel。
-
DeveloperError : 在使用BaseLayerPicker部件时,options.selectedImageryProviderViewModel不可用,请更改为指定options.imageryProvider。
-
DeveloperError : 在使用BaseLayerPicker部件时,options.selectedTerrainProviderViewModel不可用,请更改为指定options.terrainProvider 。
Example:
//初始化viewer部件
var viewer = new SuperMap3D.Viewer('Container', {
//使用 STK World Terrain
terrainProvider : new SuperMap3D.SuperMapTerrainProvider({
url : 'https://assets.agi.com/stk-terrain/world'
}),
//使用OpenStreetMaps
imageryProvider : SuperMap3D.createOpenStreetMapImageryProvider({
url : 'https://a.tile.openstreetmap.org/'
}),
});
//添加基础拖放功能
viewer.extend(SuperMap3D.viewerDragDropMixin);
//处理删除文件时遇到错误,显示弹出式警告。
viewer.dropError.addEventListener(function(dropHandler, name, error) {
console.log(error);
window.alert(error);
});
See:
Members
-
获取或设置数据源是否可以暂时暂停动画,以避免向用户显示不完整的图片。例如,假如后台正在处理异步函数,在几何图形准备就绪前,时钟不会前进。
-
readonlyanimation : Animation
-
获取动画(Animation)部件。
-
readonlybaseLayerPicker : BaseLayerPicker
-
获取基础图层拾取器(BaseLayerPicker)对象。
-
获取窗口底部包含
CreditDisplay
及其他潜在信息的DOM元素。 -
readonlycamera : Camera
-
获取相机(camera)对象。
-
获取画布(canvas)对象。
-
获取Cesium商标元素。
-
readonlyclock : Clock
-
获取时钟(clock)对象。
-
readonlyclockViewModel : 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)对象。
-
readonlyprojectionPicker : ProjectionPicker
-
获取投影拾取器。
-
readonlyreactiveWidgetUI : ReactiveWidgetUI
-
获取组件管理器对象,用于添加和移除组件。
-
获取或设置渲染分辨率的缩放因子。 值小于1.0时能够在不太强大的设备上提高性能;相反,值大于1.0时将会以更高分辨率渲染,然后按比例缩小,以此提高视觉保真度。 例如窗口部件以640x480的大小布设,将此属性设置为0.5,将导致场景以320x240分辨率渲染,场景按比例放大,而将其设置为2.0将导致场景以1280x960渲染,场景按比例缩小。
-
Default Value:
1.0
-
readonlyscene : Scene
-
获取场景(scene)对象。
-
readonlysceneModePicker : SceneModePicker
-
获取场景模式拾取器(SceneModePicker)对象。
-
readonlyscreenSpaceEventHandler : ScreenSpaceEventHandler
-
获取屏幕空间事件处理程序。
-
selectedEntity : Entity
-
获取或设置为其显示选择指示符的对象实例。
-
readonlyselectedEntityChanged : Event
-
获取选择实体对象变化时引发的事件。
-
readonlyselectionIndicator : SelectionIndicator
-
获取选择指示符(SelectionIndicator)对象。
-
readonlyshadowMap : ShadowMap
-
获取场景的阴影地图。
-
获取或设置阴影效果。
-
当useDefaultRenderLoop设置为true时,获取或设置部件的目标帧速率。 如果未定义此属性,由浏览器的
requestAnimationFrame
实现确定帧速率;如果已定义此属性,该值应大于0,并且大于底层requestAnimationFrame的值将不起作用。 -
terrainProvider : TerrainProvider
-
为地球提供表面几何图形的地形提供者(TerrainProvider)对象。
-
terrainShadows : ShadowMode
-
确定地形是否投射或接受来自太阳的阴影。
-
readonlytimeline : Timeline
-
获取时间轴(Timeline)部件。
-
trackedEntity : Entity
-
获取或设置当前由相机跟踪的实体实例。
-
readonlytrackedEntityChanged : Event
-
获取跟踪实体对象变化时引发的事件。
-
获取或设置部件是否能够控制渲染循环。
设置为true时,部件将使用requestAnimationFrame来执行渲染和调整部件大小,以及驱动时钟模拟; 设置为false时,则必须手动调用render、resize方法来作为自定义循环渲染的一部分。
如果渲染期间发生错误,将触发Scene的renderError事件,并且此属性将更改为false,错误发生后此属性必须改回true才能继续渲染。 -
readonlyvrButton : VRButton
-
获取VRButton对象。
-
readonlyWidget : Widget
-
获取Widget对象。
Methods
-
释放对象占用的资源。
-
使用提供的mixin来扩展基础viewer功能。 mixin 可以向提供的viewer实例增加额外的属性、功能或者其他行为。
Name Type Description mixin
Viewer~ViewerMixin 指定将要被添加到实例的Viewer mixin对象。 options
Object optional 指定传递给mixin函数的options对象。 See:
-
相机飞向指定的实体、实体集或数据源。如果数据源仍在加载中,或者可视化仍在进行,此方法在执行飞行前需等待数据准备就绪。
offset变量由在局部“东-北-上”参考系(中心点为包围球中心)中的“方位角/俯仰角/范围”表示。方位角和俯仰角的角度在局部“东-北-上”参考系中定义。方位角heading是从y轴开始并朝向x轴增加的角度值。俯仰角pitch是从xy平面开始的旋转角度,俯仰角为正表示位于平面上方,为负表示位于平面下方。距离range表示距中心点的距离,如果range为0,则将计算一个范围使得整个包围球可见。
在二维中必须有自上而下的视图。相机位于俯视目标上方。range为在目标上方的高度;headingy由偏移量确定,若不能根据偏移量确定方位角,heading为北方向。
Name Type Default Description target
Entity | Array.<Entity> | EntityCollection | DataSource | ImageryLayer | Promise.<(Entity|Array.<Entity>|EntityCollection|DataSource|ImageryLayer)> 指定要查看的实体、实体集、数据源或影像图层。还可以指定一个promise来解析前述类型之一。 options.duration
Number 3.0
optional 飞行持续时间(以秒为单位)。 options.maximumHeight
Number optional 飞行中的最大高度。 options.offset
HeadingPitchRange optional 在以目标为中心的局部“东-北-上”参考系中,距离目标的偏移量。 Returns:
飞行成功时,promise被解析为true;如果实体未在场景中可视化或飞行取消,promise被解析为false。 -
强制重调,使得部件重新考虑包括部件大小、credit放置等布局。
-
返回是否释放对象占用的资源。
Returns:
true表示已释放占用资源,否则返回false。 -
渲染场景。除非useDefaultRenderLoop设置为false,否则将自动调用此函数。
-
调整部件大小以匹配容器。 此函数将根据需求自动调用,除非
useDefaultRenderLoop
设置为false。 -
异步设置相机,以查看指定的实体、实体集或数据源。如果数据源仍在加载中,或者可视化仍在进行,此方法在执行缩放前需等待数据准备就绪。
offset变量由在局部“东-北-上”参考系(中心点为包围球中心)中的“方位角/俯仰角/范围”表示。方位角和俯仰角的角度在局部“东-北-上”参考系中定义。方位角heading是从y轴开始并朝向x轴增加的角度值。俯仰角pitch是从xy平面开始的旋转角度,俯仰角为正表示位于平面上方,为负表示位于平面下方。距离range表示距中心点的距离,如果range为0,则将计算一个范围使得整个包围球可见。
在二维中必须有自上而下的视图。相机位于俯视目标的上方。range 为在目标上方的高度;heading有偏移量确定,不然不能根据偏移量确定方位角,heading为北方向。
Name Type Description target
Entity | Array.<Entity> | EntityCollection | DataSource | ImageryLayer | Promise.<(Entity|Array.<Entity>|EntityCollection|DataSource|ImageryLayer)> 指定要查看的实体、实体集、数据源或影像图层。还可以指定一个promise来解析前述类型之一。 offset
HeadingPitchRange optional 指定距局部“东-北-上”参考系中心的偏移量。 Returns:
缩放成功时,promise被解析为true;如果实体未在场景中可视化或缩放取消,promise被解析为false。
Type Definitions
-
增加具有附加功能的Viewer实例的函数。
Name Type Description viewer
Viewer viewer实例对象。 options
Object 传递给mixin函数的options对象。 See: