用于构建应用程序的基本小部件。它将所有标准的BMGL部件组合成一个可重用的包。这个小部件总是可以通过使用mixins进行扩展,mixins为各种应用程序添加了有用的功能。
new Viewer(container, options)
Parameters:
container
((Element | String))
将包含该小部件的DOM元素或ID。
options
(Object)
Name | Description |
---|---|
options.animation
Boolean
default false
|
如果设置为false,则不会创建动画小部件。 |
options.baseLayerPicker
Boolean
default false
|
如果设置为false,则不会创建baselayerPicker小部件。 |
options.fullscreenButton
Boolean
default false
|
如果设置为false,将不会创建全屏按钮小部件。 |
options.homeButton
Boolean
default false
|
如果设置为false,则不会创建homebutton小部件。 |
options.infoBox
Boolean
default true
|
如果设置为false,将不会创建信息框小部件。 |
options.sceneModePicker
Boolean
default false
|
如果设置为false,则不会创建scenemodepicker小部件。 |
options.selectionIndicator
Boolean
default true
|
如果设置为false,则不会创建SelectionIndicator小部件。 |
options.timeline
Boolean
default false
|
如果设置为false,则不会创建时间轴小部件。 |
options.navigationHelpButton
Boolean
default false
|
如果设置为false,则不会创建导航帮助按钮。 |
options.navigationInstructionsInitiallyVisible
Boolean
default true
|
如果导航指令最初应该可见,则为true;如果在用户明确单击按钮之前不应显示,则为false。 |
options.scene3DOnly
Boolean
default false
|
当true 时,每个几何体实例将仅在3D中渲染以保存GPU内存。
|
options.shouldAnimate
Boolean
default false
|
true 如果时钟在默认情况下试图提前模拟时间,false 否则。此选项优先于设置Viewer#clockViewModel 。
|
options.clockViewModel
ClockViewModel
default new ClockViewModel(options.clock)
|
用于控制当前时间的时钟视图模型。 |
options.mapId
String
|
要使用的图像ID。仅当options.baselayerPicker设置为false时,此值才有效。 |
options.terrainId
String
|
要使用的地形ID |
options.skyBox
SkyBox
|
用来渲染星星的天盒。当undefined 时,使用默认星。
|
options.skyAtmosphere
SkyAtmosphere
|
蔚蓝的天空,以及环绕地球边缘的光芒。设置为false 关闭。
|
options.fullscreenElement
(Element | String)
default document.body
|
当按下全屏按钮时要置于全屏模式的元素或ID。 |
options.useDefaultRenderLoop
Boolean
default true
|
如果此小部件应控制呈现循环,则为true,否则为false。 |
options.targetFrameRate
Number
|
使用默认渲染循环时的目标帧速率。 |
options.showRenderLoopErrors
Boolean
default true
|
如果为true,则如果出现呈现循环错误,此小部件将自动向包含错误的用户显示HTML面板。 |
options.useBrowserRecommendedResolution
Boolean
default false
|
如果为真,则以浏览器建议的分辨率呈现,并忽略window.devicePixelRatio 。
|
options.automaticallyTrackDataSourceClocks
Boolean
default true
|
如果为true,则此小部件将自动跟踪新添加的数据源的时钟设置,如果数据源的时钟发生更改,则进行更新。如果要独立配置时钟,请将此设置为false。 |
options.contextOptions
Object
|
与传递给Scene 的options 对应的上下文和WebGL创建属性。
|
options.sceneMode
SceneMode
default SceneMode.SCENE3D
|
初始场景模式。 |
options.mapProjection
MapProjection
default new GeographicProjection()
|
要在二维和哥伦布视图模式中使用的地图投影。 |
options.globe
Globe
default new Globe(mapProjection.ellipsoid)
|
在场景中使用的球体。如果设置为false ,则不会添加地球仪。
|
options.orderIndependentTranslucency
Boolean
default true
|
如果为true,并且配置支持它,则使用与顺序无关的半透明。 |
options.dataSources
DataSourceCollection
default new DataSourceCollection()
|
由小部件可视化的数据源集合。如果提供此参数,则假定实例由调用方所有,并且在查看器被销毁时不会被销毁。 |
options.terrainExaggeration
Number
default 1.0
|
用于放大地形的标量。请注意,地形放大不会修改任何其他基本体,因为它们是相对于椭球体定位的。 |
options.shadows
Boolean
default false
|
确定阴影是否由太阳投射。 |
options.terrainShadows
ShadowMode
default ShadowMode.RECEIVE_ONLY
|
确定地形是投射还是接收来自太阳的阴影。 |
options.mapMode2D
MapMode2D
default MapMode2D.INFINITE_SCROLL
|
确定二维地图是可旋转的还是可以沿水平方向无限滚动。 |
options.projectionPicker
Boolean
default false
|
如果设置为true,则将创建ProjectionPicker小部件。 |
options.requestRenderMode
Boolean
default false
|
如果为“真”,则仅在场景中的更改决定需要时才会渲染帧。启用会降低应用程序的CPU/GPU使用率,并在移动设备上使用较少的电池,但需要使用Scene#requestRender 在此模式下显式呈现新帧。在许多情况下,在对API其他部分中的场景进行更改之后,这是必需的。
|
options.maximumRenderTimeChange
Number
default 0.0
|
如果requestrendermode为true,则此值定义请求呈现之前允许的模拟时间的最大更改。 |
Example
//Initialize the viewer widget with several custom options and mixins.
var viewer = new bmgl.Viewer('container', {
mapId : ‘bigemap.googlemapen-satellite’,
terrainId : 'bigemap.terrain-globe'
});
//Add basic drag and drop functionality
viewer.extend(bmgl.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);
});
Throws
-
DeveloperError : 文档中不存在ID为“container”的元素。
Members
allowDataSourcesToSuspendAnimation : Boolean
获取或设置数据源是否可以临时暂停动画以避免向用户显示不完整的图片。例如,如果在后台处理异步基元,则时钟将不会前进,直到几何图形就绪。
(readonly) animation : Animation
获取动画小部件。
(readonly) baseLayerPicker : BaseLayerPicker
获取baselayerPicker。
(readonly) BMWidget : BMWidget
获取bmwidget。
(readonly) camera : Camera
拿到相机。
(readonly) canvas : Canvas
获取画布。
(readonly) clock : Clock
获取时钟。
clockTrackedDataSource : DataSource
获取或设置要用查看器的时钟跟踪的数据源。
(readonly) clockViewModel : ClockViewModel
获取时钟视图模型。
(readonly) container : Element
获取父容器。
(readonly) dataSourceDisplay : DataSourceDisplay
获取用于
DataSource
可视化的显示。
(readonly) dataSources : DataSourceCollection
获取要可视化的
DataSource
实例集。
(readonly) entities : EntityCollection
获取未绑定到特定数据源的实体集合。这是指向
数据源显示.默认数据源.实体
的快捷方式。
(readonly) fullscreenButton : FullscreenButton
获取全屏按钮。
(readonly) homeButton : HomeButton
获取home按钮。
(readonly) imageryLayers : ImageryLayerCollection
获取将在地球仪上呈现的图像层的集合。
(readonly) infoBox : InfoBox
获取信息框。
(readonly) messageContainer : Element
获取窗口顶部区域的DOM元素。
(readonly) navigationHelpButton : NavigationHelpButton
获取导航帮助按钮。
(readonly) postProcessStages : PostProcessStageCollection
获取后期处理阶段。
(readonly) projectionPicker : ProjectionPicker
获取ProjectionPicker。
resolutionScale : Number
获取或设置用于呈现分辨率的比例因子。小于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
获取或设置要为其显示选择指示器的对象实例。
(readonly) selectedEntityChanged : Event
获取选定实体更改时引发的事件。
(readonly) selectionIndicator : SelectionIndicator
获取选择指示器。
(readonly) shadowMap : ShadowMap
获取场景的阴影图
shadows : Boolean
确定阴影是否由太阳投射。
targetFrameRate : Number
获取或设置当
useDefaultRenderLoop
为真时小部件的目标帧速率。如果未定义,浏览器的requestAnimationFrame
实现将确定帧速率。如果已定义,则此值必须大于0。高于基础RequestAnimationFrame实现的值将无效。
terrainProvider : TerrainProvider
地形提供者为地球仪提供表面几何图形。
terrainShadows : ShadowMode
确定地形是从太阳投射还是阴影。
(readonly) timeline : Timeline
获取时间轴小部件。
trackedEntity : Entity
获取或设置摄像头当前正在跟踪的实体实例。
(readonly) trackedEntityChanged : Event
获取跟踪实体更改时引发的事件。
useBrowserRecommendedResolution : Boolean
指示是否使用浏览器建议的分辨率的布尔标志。如果为真,则忽略浏览器的设备像素比,改用1.0,从而有效地基于CSS像素而不是设备像素进行渲染。这可以提高在像素密度较低的设备上的性能。如果为false,则渲染将以设备像素为单位。
Viewer#resolutionScale
无论此标志是对还是错,仍将生效。
-
Default Value:
false
useDefaultRenderLoop : Boolean
获取或设置此小部件是否应控制呈现循环。如果设置为真,小部件将使用
requestAnimationFrame
执行小部件的渲染和大小调整,并驱动模拟时钟。如果设置为false,则必须手动调用resize
,render
方法作为自定义呈现循环的一部分。如果在渲染过程中发生错误,将引发Scene
srenderError
事件,并将此属性设置为false。必须将其设置回“真”才能在出错后继续呈现。
Methods
destroy()
销毁小部件。如果从布局中永久删除小部件,则应调用。
使用提供的mixin扩展基本查看器功能。mixin可以向提供的查看器实例添加其他属性、函数或其他行为。
Parameters:
options
(Object)
要传递给mixin函数的options对象。
See:
将相机飞向提供的实体、实体或数据源。如果数据源仍在加载过程中,或者可视化仍在加载,则此方法在执行飞行前等待数据准备就绪。
偏移量是以边界球中心为中心的局部东北向上参考框中的航向/俯仰/范围。航向和俯仰角在本地东北向上参考框架中定义。航向是从Y轴到X轴的角度。螺距是从xy平面开始的旋转。正俯仰角在平面上方。负的螺距角在平面以下。范围是距中心的距离。如果范围为零,则计算范围以使整个边界球体可见。
在二维中,必须有一个俯视图。相机将放在目标上方向下看。高于目标的高度将是范围。航向将根据偏移量确定。如果无法从偏移量确定航向,则航向将为北。
Parameters:
target
((Entity | Array.<Entity> | EntityCollection | DataSource | ImageryLayer | BM3DTileset | TimeDynamicPointCloud | Promise.<(Entity|Array.<Entity>|EntityCollection|DataSource|ImageryLayer|BM3DTileset|TimeDynamicPointCloud)>))
要查看的实体、实体数组、实体集合、数据源、bm3dtileset、点云或图像层。您还可以传递一个可以解析为前面提到的类型之一的承诺。
options
(Object)
Name | Description |
---|---|
options.duration
Number
default 3.0
|
以秒为单位的飞行时间。 |
options.maximumHeight
Number
|
飞行高峰期的最大高度。 |
options.offset
HeadingPitchRange
|
在以目标为中心的局部东北向上参考帧中距目标的偏移。 |
这迫使小部件重新考虑其布局,包括小部件大小和信贷安排。
渲染场景。除非
useDefaultRenderLoop
设置为false,否则将自动调用此函数;
调整小部件的大小以匹配容器大小。除非
useDefaultRenderLoop
设置为false,否则将根据需要自动调用此函数。
异步设置摄像头以查看提供的实体、实体或数据源。如果数据源仍在加载过程中,或者可视化仍在加载,则此方法在执行缩放之前等待数据准备就绪。
偏移量是以边界球中心为中心的局部东北向上参考框中的航向/俯仰/范围。航向和俯仰角在本地东北向上参考框架中定义。航向是从Y轴到X轴的角度。螺距是从xy平面开始的旋转。正俯仰角在平面上方。负的螺距角在平面以下。范围是距中心的距离。如果范围为零,则计算范围以使整个边界球体可见。
在二维中,必须有一个俯视图。相机将放在目标上方向下看。高于目标的高度将是范围。航向将根据偏移量确定。如果无法从偏移量确定航向,则航向将为北。
Parameters:
target
((Entity | Array.<Entity> | EntityCollection | DataSource | ImageryLayer | BM3DTileset | TimeDynamicPointCloud | Promise.<(Entity|Array.<Entity>|EntityCollection|DataSource|ImageryLayer|BM3DTileset|TimeDynamicPointCloud)>))
要查看的实体、实体数组、实体集合、数据源、bm3dtileset、点云或图像层。您还可以传递一个可以解析为前面提到的类型之一的承诺。
Type Definitions
ViewerMixin(viewer, options)
一种用附加功能扩充观察程序实例的函数。
Parameters:
options
(Object)
要传递给mixin函数的options对象。