用于構(gòu)建應(yīng)用程序的基本小部件。它將所有標(biāo)準(zhǔn)的BMGL部件組合成一個(gè)可重用的包。這個(gè)小部件總是可以通過使用mixins進(jìn)行擴(kuò)展,mixins為各種應(yīng)用程序添加了有用的功能。
new Viewer(container, options)
Parameters:
container
((Element | String))
將包含該小部件的DOM元素或ID。
options
(Object)
Name | Description |
---|---|
options.animation
Boolean
default false
|
如果設(shè)置為false,則不會(huì)創(chuàng)建動(dòng)畫小部件。 |
options.baseLayerPicker
Boolean
default false
|
如果設(shè)置為false,則不會(huì)創(chuàng)建baselayerPicker小部件。 |
options.fullscreenButton
Boolean
default false
|
如果設(shè)置為false,將不會(huì)創(chuàng)建全屏按鈕小部件。 |
options.homeButton
Boolean
default false
|
如果設(shè)置為false,則不會(huì)創(chuàng)建homebutton小部件。 |
options.infoBox
Boolean
default true
|
如果設(shè)置為false,將不會(huì)創(chuàng)建信息框小部件。 |
options.sceneModePicker
Boolean
default false
|
如果設(shè)置為false,則不會(huì)創(chuàng)建scenemodepicker小部件。 |
options.selectionIndicator
Boolean
default true
|
如果設(shè)置為false,則不會(huì)創(chuàng)建SelectionIndicator小部件。 |
options.timeline
Boolean
default false
|
如果設(shè)置為false,則不會(huì)創(chuàng)建時(shí)間軸小部件。 |
options.navigationHelpButton
Boolean
default false
|
如果設(shè)置為false,則不會(huì)創(chuàng)建導(dǎo)航幫助按鈕。 |
options.navigationInstructionsInitiallyVisible
Boolean
default true
|
如果導(dǎo)航指令最初應(yīng)該可見,則為true;如果在用戶明確單擊按鈕之前不應(yīng)顯示,則為false。 |
options.scene3DOnly
Boolean
default false
|
當(dāng)true 時(shí),每個(gè)幾何體實(shí)例將僅在3D中渲染以保存GPU內(nèi)存。
|
options.shouldAnimate
Boolean
default false
|
true 如果時(shí)鐘在默認(rèn)情況下試圖提前模擬時(shí)間,false 否則。此選項(xiàng)優(yōu)先于設(shè)置Viewer#clockViewModel 。
|
options.clockViewModel
ClockViewModel
default new ClockViewModel(options.clock)
|
用于控制當(dāng)前時(shí)間的時(shí)鐘視圖模型。 |
options.mapId
String
|
要使用的圖像ID。僅當(dāng)options.baselayerPicker設(shè)置為false時(shí),此值才有效。 |
options.terrainId
String
|
要使用的地形ID |
options.skyBox
SkyBox
|
用來渲染星星的天盒。當(dāng)undefined 時(shí),使用默認(rèn)星。
|
options.skyAtmosphere
SkyAtmosphere
|
蔚藍(lán)的天空,以及環(huán)繞地球邊緣的光芒。設(shè)置為false 關(guān)閉。
|
options.fullscreenElement
(Element | String)
default document.body
|
當(dāng)按下全屏按鈕時(shí)要置于全屏模式的元素或ID。 |
options.useDefaultRenderLoop
Boolean
default true
|
如果此小部件應(yīng)控制呈現(xiàn)循環(huán),則為true,否則為false。 |
options.targetFrameRate
Number
|
使用默認(rèn)渲染循環(huán)時(shí)的目標(biāo)幀速率。 |
options.showRenderLoopErrors
Boolean
default true
|
如果為true,則如果出現(xiàn)呈現(xiàn)循環(huán)錯(cuò)誤,此小部件將自動(dòng)向包含錯(cuò)誤的用戶顯示HTML面板。 |
options.useBrowserRecommendedResolution
Boolean
default false
|
如果為真,則以瀏覽器建議的分辨率呈現(xiàn),并忽略window.devicePixelRatio 。
|
options.automaticallyTrackDataSourceClocks
Boolean
default true
|
如果為true,則此小部件將自動(dòng)跟蹤新添加的數(shù)據(jù)源的時(shí)鐘設(shè)置,如果數(shù)據(jù)源的時(shí)鐘發(fā)生更改,則進(jìn)行更新。如果要獨(dú)立配置時(shí)鐘,請(qǐng)將此設(shè)置為false。 |
options.contextOptions
Object
|
與傳遞給Scene 的options 對(duì)應(yīng)的上下文和WebGL創(chuàng)建屬性。
|
options.sceneMode
SceneMode
default SceneMode.SCENE3D
|
初始場(chǎng)景模式。 |
options.mapProjection
MapProjection
default new GeographicProjection()
|
要在二維和哥倫布視圖模式中使用的地圖投影。 |
options.globe
Globe
default new Globe(mapProjection.ellipsoid)
|
在場(chǎng)景中使用的球體。如果設(shè)置為false ,則不會(huì)添加地球儀。
|
options.orderIndependentTranslucency
Boolean
default true
|
如果為true,并且配置支持它,則使用與順序無關(guān)的半透明。 |
options.dataSources
DataSourceCollection
default new DataSourceCollection()
|
由小部件可視化的數(shù)據(jù)源集合。如果提供此參數(shù),則假定實(shí)例由調(diào)用方所有,并且在查看器被銷毀時(shí)不會(huì)被銷毀。 |
options.terrainExaggeration
Number
default 1.0
|
用于放大地形的標(biāo)量。請(qǐng)注意,地形放大不會(huì)修改任何其他基本體,因?yàn)樗鼈兪窍鄬?duì)于橢球體定位的。 |
options.shadows
Boolean
default false
|
確定陰影是否由太陽投射。 |
options.terrainShadows
ShadowMode
default ShadowMode.RECEIVE_ONLY
|
確定地形是投射還是接收來自太陽的陰影。 |
options.mapMode2D
MapMode2D
default MapMode2D.INFINITE_SCROLL
|
確定二維地圖是可旋轉(zhuǎn)的還是可以沿水平方向無限滾動(dòng)。 |
options.projectionPicker
Boolean
default false
|
如果設(shè)置為true,則將創(chuàng)建ProjectionPicker小部件。 |
options.requestRenderMode
Boolean
default false
|
如果為“真”,則僅在場(chǎng)景中的更改決定需要時(shí)才會(huì)渲染幀。啟用會(huì)降低應(yīng)用程序的CPU/GPU使用率,并在移動(dòng)設(shè)備上使用較少的電池,但需要使用Scene#requestRender 在此模式下顯式呈現(xiàn)新幀。在許多情況下,在對(duì)API其他部分中的場(chǎng)景進(jìn)行更改之后,這是必需的。
|
options.maximumRenderTimeChange
Number
default 0.0
|
如果requestrendermode為true,則此值定義請(qǐng)求呈現(xiàn)之前允許的模擬時(shí)間的最大更改。 |
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
獲取或設(shè)置數(shù)據(jù)源是否可以臨時(shí)暫停動(dòng)畫以避免向用戶顯示不完整的圖片。例如,如果在后臺(tái)處理異步基元,則時(shí)鐘將不會(huì)前進(jìn),直到幾何圖形就緒。
(readonly) animation : Animation
獲取動(dòng)畫小部件。
(readonly) baseLayerPicker : BaseLayerPicker
獲取baselayerPicker。
(readonly) BMWidget : BMWidget
獲取bmwidget。
(readonly) camera : Camera
拿到相機(jī)。
(readonly) canvas : Canvas
獲取畫布。
(readonly) clock : Clock
獲取時(shí)鐘。
clockTrackedDataSource : DataSource
獲取或設(shè)置要用查看器的時(shí)鐘跟蹤的數(shù)據(jù)源。
(readonly) clockViewModel : ClockViewModel
獲取時(shí)鐘視圖模型。
(readonly) container : Element
獲取父容器。
(readonly) dataSourceDisplay : DataSourceDisplay
獲取用于
DataSource
可視化的顯示。
(readonly) dataSources : DataSourceCollection
獲取要可視化的
DataSource
實(shí)例集。
(readonly) entities : EntityCollection
獲取未綁定到特定數(shù)據(jù)源的實(shí)體集合。這是指向
數(shù)據(jù)源顯示.默認(rèn)數(shù)據(jù)源.實(shí)體
的快捷方式。
(readonly) fullscreenButton : FullscreenButton
獲取全屏按鈕。
(readonly) homeButton : HomeButton
獲取home按鈕。
(readonly) imageryLayers : ImageryLayerCollection
獲取將在地球儀上呈現(xiàn)的圖像層的集合。
(readonly) infoBox : InfoBox
獲取信息框。
(readonly) messageContainer : Element
獲取窗口頂部區(qū)域的DOM元素。
(readonly) navigationHelpButton : NavigationHelpButton
獲取導(dǎo)航幫助按鈕。
(readonly) postProcessStages : PostProcessStageCollection
獲取后期處理階段。
(readonly) projectionPicker : ProjectionPicker
獲取ProjectionPicker。
resolutionScale : Number
獲取或設(shè)置用于呈現(xiàn)分辨率的比例因子。小于1.0的值可以在功能較弱的設(shè)備上提高性能,而大于1.0的值將以更高的分辨率呈現(xiàn),然后縮小比例,從而提高視覺逼真度。例如,如果小部件的尺寸為640x480,則將此值設(shè)置為0.5將導(dǎo)致場(chǎng)景在320x240處渲染,然后在將其設(shè)置為2.0時(shí)放大,將導(dǎo)致場(chǎng)景在1280x960處渲染,然后縮小。
-
Default Value:
1.0
(readonly) scene : Scene
獲取場(chǎng)景。
(readonly) sceneModePicker : SceneModePicker
獲取scenemodepicker。
(readonly) screenSpaceEventHandler : ScreenSpaceEventHandler
獲取屏幕空間事件處理程序。
selectedEntity : Entity
獲取或設(shè)置要為其顯示選擇指示器的對(duì)象實(shí)例。
(readonly) selectedEntityChanged : Event
獲取選定實(shí)體更改時(shí)引發(fā)的事件。
(readonly) selectionIndicator : SelectionIndicator
獲取選擇指示器。
(readonly) shadowMap : ShadowMap
獲取場(chǎng)景的陰影圖
shadows : Boolean
確定陰影是否由太陽投射。
targetFrameRate : Number
獲取或設(shè)置當(dāng)
useDefaultRenderLoop
為真時(shí)小部件的目標(biāo)幀速率。如果未定義,瀏覽器的requestAnimationFrame
實(shí)現(xiàn)將確定幀速率。如果已定義,則此值必須大于0。高于基礎(chǔ)RequestAnimationFrame實(shí)現(xiàn)的值將無效。
terrainProvider : TerrainProvider
地形提供者為地球儀提供表面幾何圖形。
terrainShadows : ShadowMode
確定地形是從太陽投射還是陰影。
(readonly) timeline : Timeline
獲取時(shí)間軸小部件。
trackedEntity : Entity
獲取或設(shè)置攝像頭當(dāng)前正在跟蹤的實(shí)體實(shí)例。
(readonly) trackedEntityChanged : Event
獲取跟蹤實(shí)體更改時(shí)引發(fā)的事件。
useBrowserRecommendedResolution : Boolean
指示是否使用瀏覽器建議的分辨率的布爾標(biāo)志。如果為真,則忽略瀏覽器的設(shè)備像素比,改用1.0,從而有效地基于CSS像素而不是設(shè)備像素進(jìn)行渲染。這可以提高在像素密度較低的設(shè)備上的性能。如果為false,則渲染將以設(shè)備像素為單位。
Viewer#resolutionScale
無論此標(biāo)志是對(duì)還是錯(cuò),仍將生效。
-
Default Value:
false
useDefaultRenderLoop : Boolean
獲取或設(shè)置此小部件是否應(yīng)控制呈現(xiàn)循環(huán)。如果設(shè)置為真,小部件將使用
requestAnimationFrame
執(zhí)行小部件的渲染和大小調(diào)整,并驅(qū)動(dòng)模擬時(shí)鐘。如果設(shè)置為false,則必須手動(dòng)調(diào)用resize
,render
方法作為自定義呈現(xiàn)循環(huán)的一部分。如果在渲染過程中發(fā)生錯(cuò)誤,將引發(fā)Scene
srenderError
事件,并將此屬性設(shè)置為false。必須將其設(shè)置回“真”才能在出錯(cuò)后繼續(xù)呈現(xiàn)。
Methods
destroy()
銷毀小部件。如果從布局中永久刪除小部件,則應(yīng)調(diào)用。
使用提供的mixin擴(kuò)展基本查看器功能。mixin可以向提供的查看器實(shí)例添加其他屬性、函數(shù)或其他行為。
Parameters:
options
(Object)
要傳遞給mixin函數(shù)的options對(duì)象。
See:
將相機(jī)飛向提供的實(shí)體、實(shí)體或數(shù)據(jù)源。如果數(shù)據(jù)源仍在加載過程中,或者可視化仍在加載,則此方法在執(zhí)行飛行前等待數(shù)據(jù)準(zhǔn)備就緒。
偏移量是以邊界球中心為中心的局部東北向上參考框中的航向/俯仰/范圍。航向和俯仰角在本地東北向上參考框架中定義。航向是從Y軸到X軸的角度。螺距是從xy平面開始的旋轉(zhuǎn)。正俯仰角在平面上方。負(fù)的螺距角在平面以下。范圍是距中心的距離。如果范圍為零,則計(jì)算范圍以使整個(gè)邊界球體可見。
在二維中,必須有一個(gè)俯視圖。相機(jī)將放在目標(biāo)上方向下看。高于目標(biāo)的高度將是范圍。航向?qū)⒏鶕?jù)偏移量確定。如果無法從偏移量確定航向,則航向?qū)楸薄?/p>
Parameters:
target
((Entity | Array.<Entity> | EntityCollection | DataSource | ImageryLayer | BM3DTileset | TimeDynamicPointCloud | Promise.<(Entity|Array.<Entity>|EntityCollection|DataSource|ImageryLayer|BM3DTileset|TimeDynamicPointCloud)>))
要查看的實(shí)體、實(shí)體數(shù)組、實(shí)體集合、數(shù)據(jù)源、bm3dtileset、點(diǎn)云或圖像層。您還可以傳遞一個(gè)可以解析為前面提到的類型之一的承諾。
options
(Object)
Name | Description |
---|---|
options.duration
Number
default 3.0
|
以秒為單位的飛行時(shí)間。 |
options.maximumHeight
Number
|
飛行高峰期的最大高度。 |
options.offset
HeadingPitchRange
|
在以目標(biāo)為中心的局部東北向上參考幀中距目標(biāo)的偏移。 |
這迫使小部件重新考慮其布局,包括小部件大小和信貸安排。
渲染場(chǎng)景。除非
useDefaultRenderLoop
設(shè)置為false,否則將自動(dòng)調(diào)用此函數(shù);
調(diào)整小部件的大小以匹配容器大小。除非
useDefaultRenderLoop
設(shè)置為false,否則將根據(jù)需要自動(dòng)調(diào)用此函數(shù)。
異步設(shè)置攝像頭以查看提供的實(shí)體、實(shí)體或數(shù)據(jù)源。如果數(shù)據(jù)源仍在加載過程中,或者可視化仍在加載,則此方法在執(zhí)行縮放之前等待數(shù)據(jù)準(zhǔn)備就緒。
偏移量是以邊界球中心為中心的局部東北向上參考框中的航向/俯仰/范圍。航向和俯仰角在本地東北向上參考框架中定義。航向是從Y軸到X軸的角度。螺距是從xy平面開始的旋轉(zhuǎn)。正俯仰角在平面上方。負(fù)的螺距角在平面以下。范圍是距中心的距離。如果范圍為零,則計(jì)算范圍以使整個(gè)邊界球體可見。
在二維中,必須有一個(gè)俯視圖。相機(jī)將放在目標(biāo)上方向下看。高于目標(biāo)的高度將是范圍。航向?qū)⒏鶕?jù)偏移量確定。如果無法從偏移量確定航向,則航向?qū)楸薄?/p>
Parameters:
target
((Entity | Array.<Entity> | EntityCollection | DataSource | ImageryLayer | BM3DTileset | TimeDynamicPointCloud | Promise.<(Entity|Array.<Entity>|EntityCollection|DataSource|ImageryLayer|BM3DTileset|TimeDynamicPointCloud)>))
要查看的實(shí)體、實(shí)體數(shù)組、實(shí)體集合、數(shù)據(jù)源、bm3dtileset、點(diǎn)云或圖像層。您還可以傳遞一個(gè)可以解析為前面提到的類型之一的承諾。
Type Definitions
ViewerMixin(viewer, options)
一種用附加功能擴(kuò)充觀察程序?qū)嵗暮瘮?shù)。
Parameters:
options
(Object)
要傳遞給mixin函數(shù)的options對(duì)象。