Widget

new SuperMap3D.Widget(options, container)

包含 SuperMap3D 场景的部件。
Name Type Default Description
options Object optional 具有以下属性的对象:
container Element | String 包含 widget 的 DOM 元素或 ID。
options.clock Clock new Clock() optional 用于控制当前时间的时钟。
options.imageryProvider ImageryProvider new BingMapsImageryProvider() optional 作为基础图层的影像provider。如果设置为 false,则不会添加影像provider。
options.terrainProvider TerrainProvider new EllipsoidTerrainProvider optional 地形provider。
options.skyBox SkyBox optional 用于渲染星星的天空盒。 如果未定义,则使用默认的星星。如果设置为 false,则不会添加天空盒、太阳或月亮。
options.skyAtmosphere SkyAtmosphere optional 蓝天和地球边缘的光晕效果。设置为false可将其关闭。
options.sceneMode SceneMode SceneMode.SCENE3D optional 初始场景模式。
options.scene3DOnly Boolean false optional 为true时,每个几何体实例将只以三维呈现,以节省GPU内存。
options.orderIndependentTranslucency Boolean true optional 如果为true且配置支持,则使用与顺序无关的半透明效果。
options.mapProjection MapProjection new GeographicProjection() optional 在二维和哥伦布视图模式下使用的地图投影。
options.globe Globe new Globe(mapProjection.ellipsoid) optional 场景中要使用的地球。如果设置为 false,则不会添加地球。
options.useDefaultRenderLoop Boolean true optional 如果此widget控制渲染循环,则为 true,否则为 false。
options.targetFrameRate Number optional 使用默认渲染循环时的目标帧频。
options.showRenderLoopErrors Boolean true optional 如果为true,在出现呈现循环错误时,此 widget 将自动向用户显示包含错误信息的 HTML 面板。
options.contextOptions Object optional 与传递给 Scene 的选项相对应的上下文和 WebGL 创建属性。
options.creditContainer Element | String optional 包含 CreditDisplay 的 DOM 元素或 ID。如果未指定,将添加到 widget 本身的底部。
options.terrainExaggeration Number 1.0 optional 用于地形夸张的标量。请注意,地形夸张不会修改任何其他基元,因为它们是相对于椭球体定位的。
options.shadows Boolean false optional 确定太阳是否投射阴影。
options.terrainShadows Boolean false optional 确定地形是否会投射太阳阴影。
options.mapMode2D MapMode2D MapMode2D.INFINITE_SCROLL optional 确定二维地图是否可以旋转或在水平方向上无限滚动。
Throws:
Example:
// For each example, include a link to Widget.css stylesheet in HTML head,
// and in the body, include: <div id="Container"></div>

//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

readonlycamera : Camera

获取相机。

canvas : Canvas

获取画布。

clock : Clock

获取时钟。

container : Element

获取父容器。

creditContainer : Element

获取凭证容器。

errorListenerEvent : Object

获取监听崩溃错误事件。

readonlyimageryLayers : ImageryLayerCollection

获取将在地球上渲染的影像层集合。

resolutionScale : Number

获取或设置渲染分辨率的缩放因子。 小于 1.0 的值可以提高功能较弱设备的性能,而大于 1.0 的值将以更高分辨率渲染,然后再缩小,从而提高视觉保真度。 例如,如果窗口小部件的尺寸为 640x480,将此值设置为 0.5 将使场景以 320x240 渲染,然后再按比例放大,而设置为 2.0 将使场景以 1280x960 渲染,然后再按比例缩小。
Default Value: 1.0

scene : Scene

获取场景。

screenSpaceEventHandler : ScreenSpaceEventHandler

获取屏幕空间事件处理器。

setErrorPanelIsShow : Boolean

获取或设置崩溃日志是否显示。

targetFrameRate : Number

当 useDefaultRenderLoop 为true时,获取或设置widget的目标帧频。 如果未定义,则由浏览器的requestAnimationFrame 实现决定帧频。 如果已定义,该值必须大于0,高于底层 requestAnimationFrame 实现的值不会有任何影响。

terrainProvider : TerrainProvider

获取地形provider为地球表面提供的几何体。

useBrowserRecommendedResolution : Boolean

布尔标志,表示是否使用浏览器推荐的分辨率。 如果为true,浏览器的设备像素比将被忽略,并使用 1.0 代替,从而有效地根据 CSS 像素而不是设备像素进行渲染。 这可以提高像素密度较高但性能较弱的设备的性能。 当设置为false时,将以设备像素进行渲染。 无论此标志为true或者false,Widget#resolutionScale 依然有效。
Default Value: false

useDefaultRenderLoop : Boolean

如果设置为true,该窗口小部件将使用 requestAnimationFrame 来执行窗口小部件的渲染和大小调整,并驱动模拟时钟。 如果设置为false,则必须在自定义渲染循环中手动调用调整大小和渲染方法。 如果在渲染过程中出现错误,Scene 的 renderError 事件将被触发,此属性也将被设置为 false。 出错后,必须将该属性设置为 true 才能继续渲染。

Methods

destroy()

销毁部件。

isDestroyed()Boolean

Returns:
如果对象已被销毁,则为 true,否则为 false。

render()

渲染场景。 除非将 useDefaultRenderLoop 设置为 false,否则此函数会自动调用。

resize()

更新画布尺寸、相机宽高比和视口尺寸。 除非将 useDefaultRenderLoop 设为 false,否则该函数会在需要时自动调用。

showErrorPanel(title, message, error)

向用户显示一个包含标题和较长错误信息的错误面板,用户可以使用确定按钮取消该面板。 如果在创建 widget 时 showRenderLoopErrors 不是 false,那么当出现渲染循环错误时,该面板就会自动显示。
Name Type Description
title String 显示在错误面板上的标题。该字符串被解释为文本。
message String 在详细错误信息之前显示的面向用户的有用信息。该字符串可解释为 HTML。
error String optional 将显示在错误面板上的错误。该字符串将使用 formatError 格式化,然后以文本形式显示。