new Widget(container)
包含 SuperMap3D 场景的部件。
| Name | Type | Default | Description |
|---|---|---|---|
container |
Element | String |
包含 widget 的 DOM 元素或 ID。 |
|
options.clock |
Clock | new Clock() |
可选
用于控制当前时间的时钟。 |
options.imageryProvider |
ImageryProvider | new BingMapsImageryProvider() |
可选
作为基础图层的影像provider。如果设置为 false,则不会添加影像provider。 |
options.terrainProvider |
TerrainProvider | new EllipsoidTerrainProvider |
可选
地形provider。 |
options.skyBox |
SkyBox |
可选
用于渲染星星的天空盒。 如果未定义,则使用默认的星星。如果设置为 false,则不会添加天空盒、太阳或月亮。 |
|
options.skyAtmosphere |
SkyAtmosphere |
可选
蓝天和地球边缘的光晕效果。设置为false可将其关闭。 |
|
options.sceneMode |
SceneMode | SceneMode.SCENE3D |
可选
初始场景模式。 |
options.scene3DOnly |
Boolean | false |
可选
为true时,每个几何体实例将只以三维呈现,以节省GPU内存。 |
options.orderIndependentTranslucency |
Boolean | true |
可选
如果为true且配置支持,则使用与顺序无关的半透明效果。 |
options.mapProjection |
MapProjection | new GeographicProjection() |
可选
在二维和哥伦布视图模式下使用的地图投影。 |
options.globe |
Globe | new Globe(mapProjection.ellipsoid) |
可选
场景中要使用的地球。如果设置为 false,则不会添加地球。 |
options.useDefaultRenderLoop |
Boolean | true |
可选
如果此widget控制渲染循环,则为 true,否则为 false。 |
options.targetFrameRate |
Number |
可选
使用默认渲染循环时的目标帧频。 |
|
options.showRenderLoopErrors |
Boolean | true |
可选
如果为true,在出现呈现循环错误时,此 widget 将自动向用户显示包含错误信息的 HTML 面板。 |
options.contextOptions |
Object |
可选
与传递给 |
|
options.creditContainer |
Element | String |
可选
包含 |
|
options.terrainExaggeration |
Number | 1.0 |
可选
用于地形夸张的标量。请注意,地形夸张不会修改任何其他基元,因为它们是相对于椭球体定位的。 |
options.shadows |
Boolean | false |
可选
确定太阳是否投射阴影。 |
options.terrainShadows |
Boolean | false |
可选
确定地形是否会投射太阳阴影。 |
options.mapMode2D |
MapMode2D | MapMode2D.INFINITE_SCROLL |
可选
确定二维地图是否可以旋转或在水平方向上无限滚动。 |
Throws:
-
文档中不存在id为container的元素。
- Type
- DeveloperError
Example
// For each example, include a link to Widget.css stylesheet in HTML head,
// and in the body, include:
//Widget with no terrain and default Bing Maps imagery provider.
var widget = new SuperMap3D.Widget('Container');
//Widget with OpenStreetMaps imagery provider and SuperMap3D terrain provider hosted by AGI.
var widget = new SuperMap3D.Widget('Container', {
imageryProvider : SuperMap3D.createOpenStreetMapImageryProvider(),
terrainProvider : new SuperMap3D.SuperMapTerrainProvider({
url : 'https://assets.agi.com/stk-terrain/v1/tilesets/world/tiles'
}),
skyBox : new SuperMap3D.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
sceneMode : SuperMap3D.SceneMode.COLUMBUS_VIEW,
mapProjection : new SuperMap3D.WebMercatorProjection()
});
Members
-
readonly cameraCamera
-
获取相机。
-
canvasCanvas
-
获取画布。
-
clockClock
-
获取时钟。
-
containerElement
-
获取父容器。
-
creditContainerElement
-
获取版权声明容器。
-
creditViewportElement
-
Gets the credit viewport
-
errorListenerEventObject
-
获取监听崩溃错误事件。
-
readonly imageryLayersImageryLayerCollection
-
获取将在地球上渲染的影像层集合。
-
resolutionScaleNumber
-
获取或设置渲染分辨率的缩放因子。 小于 1.0 的值可以提高功能较弱设备的性能,而大于 1.0 的值将以更高分辨率渲染,然后再缩小,从而提高视觉保真度。 例如,如果窗口小部件的尺寸为 640x480,将此值设置为 0.5 将使场景以 320x240 渲染,然后再按比例放大,而设置为 2.0 将使场景以 1280x960 渲染,然后再按比例缩小。
- Default Value: 1.0
sceneScene
获取场景。
screenSpaceEventHandlerScreenSpaceEventHandler
获取屏幕空间事件处理器。
setErrorPanelIsShowBoolean
获取或设置崩溃日志是否显示。
targetFrameRateNumber
当 useDefaultRenderLoop 为true时,获取或设置widget的目标帧频。
如果未定义,则由浏览器的requestAnimationFrame 实现决定帧频。
如果已定义,该值必须大于0,高于底层 requestAnimationFrame 实现的值不会有任何影响。
terrainProviderTerrainProvider
获取地形provider为地球表面提供的几何体。
useBrowserRecommendedResolutionBoolean
布尔标志,表示是否使用浏览器推荐的分辨率。
如果为true,浏览器的设备像素比将被忽略,并使用 1.0 代替,从而有效地根据 CSS 像素而不是设备像素进行渲染。
这可以提高像素密度较高但性能较弱的设备的性能。
当设置为false时,将以设备像素进行渲染。
无论此标志为true或者false,Widget#resolutionScale 依然有效。
- Default Value: false
useDefaultRenderLoopBoolean
如果设置为true,该窗口小部件将使用 requestAnimationFrame 来执行窗口小部件的渲染和大小调整,并驱动模拟时钟。
如果设置为false,则必须在自定义渲染循环中手动调用调整大小和渲染方法。
如果在渲染过程中出现错误,Scene 的 renderError 事件将被触发,此属性也将被设置为 false。
出错后,必须将该属性设置为 true 才能继续渲染。
Methods
-
destroy()
-
销毁部件。
-
isDestroyed(){Boolean}
-
Returns:
Type Description Boolean 如果对象已被销毁,则为 true,否则为 false。 -
render()
-
渲染场景。 除非将 useDefaultRenderLoop 设置为 false,否则此函数会自动调用。
-
resize()
-
更新画布尺寸、相机宽高比和视口尺寸。 除非将 useDefaultRenderLoop 设为 false,否则该函数会在需要时自动调用。
-
showErrorPanel(title, message, error)
-
向用户显示一个包含标题和较长错误信息的错误面板,用户可以使用确定按钮取消该面板。 如果在创建 widget 时 showRenderLoopErrors 不是 false,那么当出现渲染循环错误时,该面板就会自动显示。
Name Type Description titleString 显示在错误面板上的标题。该字符串被解释为文本。
messageString 在详细错误信息之前显示的面向用户的有用信息。该字符串可解释为 HTML。
errorString 可选 将显示在错误面板上的错误。该字符串将使用
formatError格式化,然后以文本形式显示。