Viewer
A base widget for building applications. It composites all of the standard Cesium widgets into one reusable package. The widget can always be extended by using mixins, which add functionality useful for a variety of applications.
// Initialize the viewer widget with several custom options and mixins.
try {
const viewer = new Viewer("cesiumContainer", {
// Start in Columbus Viewer
sceneMode: SceneMode.COLUMBUS_VIEW,
// Use Cesium World Terrain
terrain: Terrain.fromWorldTerrain(),
// Hide the base layer picker
baseLayerPicker: false,
// Use OpenStreetMaps
baseLayer: new ImageryLayer(new OpenStreetMapImageryProvider({
url: "https://tile.openstreetmap.org/"
})),
skyBox: new 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 WebMercatorProjection()
});
} catch (error) {
console.log(error);
}
// Add basic drag and drop functionality
viewer.extend(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);
});
See also
Types
Initialization options for the Viewer constructor
Properties
Gets or sets whether or not data sources can temporarily pause animation in order to avoid showing an incomplete picture to the user. For example, if asynchronous primitives are being processed in the background, the clock will not advance until the geometry is ready.
Gets the BaseLayerPicker.
Gets the DOM element for the area at the bottom of the window containing the CreditDisplay and potentially other things.
Gets the canvas.
Gets the CesiumWidget.
Gets or sets the data source to track with the viewer's clock.
Gets the clock view model.
Manages the list of credits to display on screen and in the lightbox.
Gets the display used for DataSource visualization.
Gets the set of DataSource instances to be visualized.
Gets the collection of entities not tied to a particular data source. This is a shortcut to dataSourceDisplay.defaultDataSource.entities.
Gets the FullscreenButton.
Gets the HomeButton.
Gets the collection of image layers that will be rendered on the globe.
Gets the NavigationHelpButton.
Gets the post-process stages.
Gets the ProjectionPicker.
Gets or sets a scaling factor for rendering resolution. Values less than 1.0 can improve performance on less powerful devices while values greater than 1.0 will render at a higher resolution and then scale down, resulting in improved visual fidelity. For example, if the widget is laid out at a size of 640x480, setting this value to 0.5 will cause the scene to be rendered at 320x240 and then scaled up while setting it to 2.0 will cause the scene to be rendered at 1280x960 and then scaled down.
Gets the SceneModePicker.
Gets the screen space event handler.
Gets or sets the object instance for which to display a selection indicator.
Gets the event that is raised when the selected entity changes.
Gets the selection indicator.
Gets or sets the target frame rate of the widget when useDefaultRenderLoop
is true. If undefined, the browser's requestAnimationFrame implementation determines the frame rate. If defined, this value must be greater than 0. A value higher than the underlying requestAnimationFrame implementation will have no effect.
The terrain provider providing surface geometry for the globe.
Determines if the terrain casts or shadows from light sources.
Gets or sets the Entity instance currently being tracked by the camera.
Gets the event that is raised when the tracked entity changes.
Boolean flag indicating if the browser's recommended resolution is used. If true, the browser's device pixel ratio is ignored and 1.0 is used instead, effectively rendering based on CSS pixels instead of device pixels. This can improve performance on less powerful devices that have high pixel density. When false, rendering will be in device pixels. Viewer.resolutionScale will still take effect whether this flag is true or false.
Gets or sets whether or not this widget should control the render loop. If true the widget will use requestAnimationFrame to perform rendering and resizing of the widget, as well as drive the simulation clock. If set to false, you must manually call the resize
, render
methods as part of a custom render loop. If an error occurs during rendering, Scene's renderError
event will be raised and this property will be set to false. It must be set back to true to continue rendering after the error.
Functions
Extends the base viewer functionality with the provided mixin. A mixin may add additional properties, functions, or other behavior to the provided viewer instance.
Flies the camera to the provided entity, entities, or data source. If the data source is still in the process of loading or the visualization is otherwise still loading, this method waits for the data to be ready before performing the flight.
This forces the widget to re-think its layout, including widget sizes and credit placement.
Asynchronously sets the camera to view the provided entity, entities, or data source. If the data source is still in the process of loading or the visualization is otherwise still loading, this method waits for the data to be ready before performing the zoom.