Viewer

new LSGlobe.Viewer (container, options )

用于构建应用程序的基本小部件。它将所有标准Cesium小部件组合到一个可重用的程序包中。始终可以通过使用mixin扩展窗口小部件,这些文件添加了对各种应用程序有用的功能。
Name Type Description
container Element | String 将包含窗口小部件的DOM元素或ID。
options Viewer.ConstructorOptions 可选 描述初始化选项的对象
Throws:
  • DeveloperError :ID为'容器'的元素在文档中不存在。
  • DeveloperError :options.selectedImageryProviderViewModel在不使用BaseLayerPicker小部件时不可用,请指定options.imageryProvider。
  • DeveloperError :options.selectedTerrainProviderViewModel在不使用BaseLayerPicker小部件时不可用,请指定options.terrainProvider。
Example:
//Initialize the viewer widget with several custom options and mixins.
var viewer = new LSGlobe.Viewer('cesiumContainer', {
    //Start in Columbus Viewer
    sceneMode : LSGlobe.SceneMode.COLUMBUS_VIEW,
    //Use Cesium World Terrain
    terrainProvider : LSGlobe.createWorldTerrain(),
    //Hide the base layer picker
    baseLayerPicker : false,
    //Use OpenStreetMaps
    imageryProvider : new LSGlobe.OpenStreetMapImageryProvider({
        url : 'https://a.tile.openstreetmap.org/'
    }),
    skyBox : new LSGlobe.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
    mapProjection : new LSGlobe.WebMercatorProjection()
});

//Add basic drag and drop functionality
viewer.extend(LSGlobe.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);
});
Demo:
See:

Members

allowDataSourcesToSuspendAnimation : Boolean

获取或设置数据源是否可以临时暂停动画,以避免向用户显示不完整的图片。例如,如果异步原语正在在几何图形准备就绪之前,时钟不会提前。
获取动画小部件。
获取BaseLayerPicker。

readonly bottomContainer : Element

获取包含以下内容的窗口底部区域的DOM元素: CreditDisplay 以及其他可能的东西。
获取相机。

readonly canvas : HTMLCanvasElement

获取画布。
获取CesiumWidget。
获取时钟。
获取或设置要与查看者的时钟一起跟踪的数据源。
获取时钟视图模型。

readonly container : Element

获取父容器。
获取用于 DataSource 可视化的显示。
获取要可视化的 DataSource 实例集。
获取未绑定到特定数据源的实体的集合。这是 dataSourceDisplay.defaultDataSource.entities 的快捷方式。
获取FullscreenButton。
获取地理编码器。
获取'主页'按钮。
获取将在地球上渲染的图像图层的集合。
获取信息框。
获取NavigationHelpButton。
获取后处理阶段。
获取ProjectionPicker。

resolutionScale : Number

获取或设置渲染分辨率的缩放比例。小于1.0的值可以改善性能不佳的设备上的性能,而值大于1.0则将以更高的速度呈现分辨率,然后缩小比例,从而提高视觉保真度。例如,如果窗口小部件的尺寸为640x480,则将此值设置为0.5将导致场景以320x240渲染,然后在设置时按比例放大设置为2.0将导致场景以1280x960渲染,然后按比例缩小。
Default Value: 1.0
获取场景。
获取SceneModePicker。
获取屏幕空间事件处理程序。
获取或设置要为其显示选择指示符的对象实例。

readonly selectedEntityChanged : Event

获取所选实体更改时引发的事件。
获取选择指示器。
获取场景的阴影贴图
确定阴影是否由光源投射。

targetFrameRate : Number

useDefaultRenderLoop 时获取或设置小部件的目标帧速率是真的。如果未定义,则为浏览器的 requestAnimationFrame 实现确定帧频。如果定义,则该值必须大于0。更高的值比基础的requestAnimationFrame实现无效。
地形提供者为地球提供表面几何形状。
确定地形是投射光源还是投射阴影。
获取时间轴小部件。
获取或设置相机当前正在跟踪的Entity实例。

readonly trackedEntityChanged : Event

获取当被跟踪实体更改时引发的事件。

useBrowserRecommendedResolution : Boolean

布尔标志,指示是否使用浏览器推荐的分辨率。如果为true,则会忽略浏览器的设备像素比率,而改用1.0,根据CSS像素而不是设备像素有效地渲染。这样可以改善在像素密度较高的功能较弱的设备上的性能。如果为假,则渲染将以设备像素为单位。 Viewer#resolutionScale 仍然会生效该标志为真或假。
Default Value: true

useDefaultRenderLoop : Boolean

获取或设置此小部件是否应控制渲染循环。如果设置为true,则小部件将使用 requestAnimationFrame 执行小部件的渲染和调整大小,以及驱动模拟时钟。如果设置为false,则必须手动调用 resize render 方法作为自定义渲染循环的一部分。如果在渲染过程中发生错误,则 Scene renderError 事件将引发,并且此属性将设置为false。必须将其设置为true才能继续渲染错误之后。
获取VRButton。

Methods

销毁小部件。如果永久应调用从布局中删除小部件。

extend (mixin, options )

使用提供的mixin扩展基本查看器功能。混合可能会添加其他属性,功能或其他行为到提供的查看器实例。
Name Type Description
mixin Viewer.ViewerMixin 要添加到该实例的查看器混合。
options Object 可选 options对象将传递给mixin函数。
See:

flyTo (target, options ) Promise.<Boolean>

将相机移至提供的一个或多个实体或数据源。如果数据源仍在加载过程中,或者可视化仍在加载中,此方法在执行飞行之前等待数据准备就绪。

偏移量是在以边界球中心为中心的局部东北向上参考框中的航向/俯仰/范围。航向角和俯仰角是在局部的东西向北参考系中定义的。航向是从y轴到x轴的角度。间距是从xy平面开始的旋转。正螺距角度在平面上方。负俯仰角在平面下方。范围是到中心的距离。如果范围是零,则将计算范围以使整个边界球都可见。

在2D模式下,必须有一个俯视图。摄像机将被放置在目标上方并向下看。上方的高度目标将是范围。航向将根据偏移量确定。如果标题不能根据偏移量确定,航向将为北。

Name Type Description
target Entity | Array.< Entity > | EntityCollection | DataSource | ImageryLayer | Cesium3DTileset | TimeDynamicPointCloud | Promise.<( Entity |Array.< Entity >| EntityCollection | DataSource | ImageryLayer | Cesium3DTileset | TimeDynamicPointCloud )> 实体,实体阵列,实体集合,数据源,Cesium3DTileset,点云或要查看的图像层。您还可以传递一个可以解决前面提到的一种类型的诺言。
options Object 可选 具有以下属性的对象:
名称 类型 默认 说明
持续时间 数字 3.0 可选 飞行持续时间(秒)。
maximumHeight 数字 可选 飞行高峰时的最大高度。
offset HeadingPitchRange 可选 在局部东北朝上的参考框中,距目标的偏移量为中心。
Returns:
如果飞行成功则解析为true的承诺,如果当前未在场景中可视化目标或取消飞行,则为false的Promise。 //TODO:清理实体提及
这迫使窗口小部件重新考虑其布局,包括窗口小部件尺寸和信用位置。

isDestroyed () Boolean

Returns:
如果对象已销毁,则为true,否则为false。
渲染场景。该功能会自动调用除非 useDefaultRenderLoop 设置为false;
调整窗口小部件的大小以匹配容器的大小。除非需要,否则将自动调用此函数 useDefaultRenderLoop 设置为false。

zoomTo (target, offset ) Promise.<Boolean>

异步设置摄像机以查看提供的一个或多个实体或数据源。如果数据源仍在加载过程中,或者可视化仍在加载中,此方法在执行缩放之前等待数据准备就绪。

偏移量是在以边界球中心为中心的局部东北向上参考框中的航向/俯仰/范围。航向角和俯仰角是在局部的东西向北参考系中定义的。航向是从y轴到x轴的角度。间距是从xy平面开始的旋转。正螺距角度在平面上方。负俯仰角在平面下方。范围是到中心的距离。如果范围是零,则将计算范围以使整个边界球都可见。

在2D模式下,必须有一个俯视图。摄像机将被放置在目标上方并向下看。上方的高度目标将是范围。航向将根据偏移量确定。如果标题不能根据偏移量确定,航向将为北。

Name Type Description
target Entity | Array.< Entity > | EntityCollection | DataSource | ImageryLayer | Cesium3DTileset | TimeDynamicPointCloud | Promise.<( Entity |Array.< Entity >| EntityCollection | DataSource | ImageryLayer | Cesium3DTileset | TimeDynamicPointCloud )> 实体,实体阵列,实体集合,数据源,Cesium3DTileset,点云或要查看的图像层。您还可以传递一个可以解决前面提到的一种类型的诺言。
offset HeadingPitchRange 可选 在本地东北向上参考系中,距实体中心的偏移量。
Returns:
如果缩放成功则解析为true的Promise,如果当前未在场景中可视化目标或取消缩放,则为false的Promise。

Type Definitions

LSGlobe.Viewer.ConstructorOptions

Viewer构造函数的初始化选项
Properties:

如果时钟默认情况下应尝试延长仿真时间,则为

Name Type Attributes Default Description
animation Boolean <optional>
true 如果设置为false,将不会创建'动画'小部件。
baseLayerPicker Boolean <optional>
true 如果设置为false,将不会创建BaseLayerPicker小部件。
fullscreenButton Boolean <optional>
true 如果设置为false,将不会创建FullscreenButton小部件。
vrButton Boolean <optional>
false 如果设置为true,将创建VRButton小部件。
geocoder Boolean | Array.< GeocoderService > <optional>
true 如果设置为false,则将不会创建Geocoder小部件。
homeButton Boolean <optional>
true 如果设置为false,将不会创建'主页按钮'小部件。
infoBox Boolean <optional>
true 如果设置为false,则不会创建InfoBox小部件。
sceneModePicker Boolean <optional>
true 如果设置为false,将不会创建SceneModePicker小部件。
selectionIndicator Boolean <optional>
true 如果设置为false,将不会创建SelectionIndicator小部件。
timeline Boolean <optional>
true 如果设置为false,则不会创建时间轴小部件。
navigationHelpButton Boolean <optional>
true 如果设置为false,将不会创建导航帮助按钮。
navigationInstructionsInitiallyVisible Boolean <optional>
true 如果最初应该看到导航说明,则为true;如果直到用户明确单击该按钮,则该提示不显示,否则为false。
scene3DOnly Boolean <optional>
false true 时,每个几何实例将仅以3D渲染以节省GPU内存。
shouldAnimate Boolean <optional>
false true ,否则为 false 。此选项优先于设置 Viewer#clockViewModel
clockViewModel ClockViewModel <optional>
new ClockViewModel(clock) 用于控制当前时间的时钟视图模型。
selectedImageryProviderViewModel ProviderViewModel <optional>
当前基础影像图层的视图模型(如果未提供,则使用第一个可用的基础图层)。仅当' baseLayerPicker'设置为true时,此值才有效。
imageryProviderViewModels Array.< ProviderViewModel > <optional>
createDefaultImageryProviderViewModels() 可以从BaseLayerPicker中选择的ProviderViewModels数组。仅当' baseLayerPicker'设置为true时,此值才有效。
selectedTerrainProviderViewModel ProviderViewModel <optional>
当前基础地形图层的视图模型(如果未提供,则使用第一个可用的基础图层)。仅当' baseLayerPicker'设置为true时,此值才有效。
terrainProviderViewModels Array.< ProviderViewModel > <optional>
createDefaultTerrainProviderViewModels() 可以从BaseLayerPicker中选择的ProviderViewModels数组。仅当' baseLayerPicker'设置为true时,此值才有效。
imageryProvider ImageryProvider <optional>
createWorldImagery() 要使用的图像提供程序。此值仅在' baseLayerPicker'设置为false时有效。
terrainProvider TerrainProvider <optional>
new EllipsoidTerrainProvider() 要使用的地形提供商
skyBox SkyBox | false <optional>
用于渲染星星的天空盒。 undefined (未定义)时,将使用默认星号。如果设置为 false ,则不会添加skyBox,Sun或Moon。
skyAtmosphere SkyAtmosphere | false <optional>
蓝天,以及地球四肢的光芒。设置为 false 将其关闭。
fullscreenElement Element | String <optional>
document.body 按下全屏按钮时要置于全屏模式的元素或ID。
useDefaultRenderLoop Boolean <optional>
true 如果此小部件应控制渲染循环,则为true,否则为false。
targetFrameRate Number <optional>
使用默认渲染循环时的目标帧速率。
showRenderLoopErrors Boolean <optional>
true 如果为true,则在发生渲染循环错误时,此小部件将自动向包含错误的用户显示HTML面板。
useBrowserRecommendedResolution Boolean <optional>
true 如果为true,则以浏览器建议的分辨率渲染,并忽略 window.devicePixelRatio
automaticallyTrackDataSourceClocks Boolean <optional>
true 如果为true,则此小部件将自动跟踪新添加的数据源的时钟设置,并在数据源的时钟发生更改时进行更新。如果要独立配置时钟,请将其设置为false。
contextOptions Object <optional>
传递给 Scene 的与 options 相对应的上下文和WebGL创建属性。 /td>
sceneMode SceneMode <optional>
SceneMode.SCENE3D 初始场景模式。
mapProjection MapProjection <optional>
new GeographicProjection() 在2D和Columbus视图模式下使用的地图投影。
globe Globe <optional>
new Globe(mapProjection.ellipsoid) 要在场景中使用的地球仪。如果设置为 false ,则不会添加任何地球仪。
orderIndependentTranslucency Boolean <optional>
true 如果为true,并且配置支持它,则使用顺序无关的半透明性。
creditContainer Element | String <optional>
包含 CreditDisplay 的DOM元素或ID。如果未指定,则将功劳添加到小部件本身的底部。
creditViewport Element | String <optional>
将包含 CreditDisplay 创建的弹出窗口的DOM元素或ID。如果未指定,它将显示在小部件本身上。
dataSources DataSourceCollection <optional>
new DataSourceCollection() 由小部件可​​视化的数据源集合。如果提供此参数, 该实例假定为调用者所有,并且在销毁查看器时也不会销毁。
terrainExaggeration Number <optional>
1.0 用于放大地形的标量。请注意,地形夸张不会修改其他相对于椭球的图元。
shadows Boolean <optional>
false 确定阴影是否由光源投射。
terrainShadows ShadowMode <optional>
ShadowMode.RECEIVE_ONLY 确定地形是否投射或接收来自光源的阴影。
mapMode2D MapMode2D <optional>
MapMode2D.INFINITE_SCROLL 确定2D地图是可旋转的还是可以在水平方向无限滚动。
projectionPicker Boolean <optional>
false 如果设置为true,将创建ProjectionPicker小部件。
requestRenderMode Boolean <optional>
false 如果为true,则仅根据场景中的更改确定是否需要渲染帧。启用可减少应用程序的CPU/GPU使用率,并减少移动设备上的电池消耗,但需要使用 '> Scene#requestRender 来呈现新的在此模式下显式帧。在API的其他部分对场景进行更改后,在许多情况下这是必要的。请参见 通过显式渲染提高性能
maximumRenderTimeChange Number <optional>
0.0 如果requestRenderMode为true,则此值定义在请求渲染之前允许的最大仿真时间更改。请参见 通过显式渲染提高性能

LSGlobe.Viewer.ViewerMixin (viewer, options)

通过附加功能扩展Viewer实例的功能。
Name Type Description
viewer Viewer 查看器实例。
options Object 选项对象将传递给mixin函数。
See: