Skip to content

Cesium

Cesium is a both a JavaScript library and platform for visualising geographic information in 3D on a virtual globe similar to Google Earth. CesiumJS is an open source JavaScript library for visualising this data in a web browser without a plugin. It uses WebGL for hardware-accelerated graphics and supports dynamic-data visualization. Cesium provide a cloud hosting service called Cesium Ion which has free and paid tiers. Cesium are also working to advance the 3DTiles standard for streaming geographic datasets. Most recently Cesium have introduced a plugin for the Unreal Engine called Cesium For Unreal.

Personal Experience

In the past I had experiemented with CesiumJS in the browser but as most of my work was in Unity I didn't have much use for it. However the release of Cesium for Unreal provided a new means of interacting with the platform that better suited my existing workflow. After producing my own 3DTiles using FME, the potential for integrating CesiumJS with other web-based tools and frameworks reignited my interest. Typically I'd use the Unreal plugin for first-person, architectural and district scale experiences with higher end graphics, and use CesiumJS for district and regional scale visualisations and interactions via the web.

Tools & Software Integrations

  • cesium-terrain-builder by the GeoData Institute. A C++ library and associated command line tools designed to create terrain tiles for use in the Cesium JavaScript library. For convenience the Technical University of Munich GIS department maintain a Docker container cesium-terrain-builder-docker.

N/A

Resources

N/A

Notes and Troubleshooting

Configure Cesium for Offline Use

  • The default imagery provider in CesiumJS is Cesium ion global imagery via Bing Maps. To use another provider pass it into the constructor for the Viewer widget. Otherwise, CesiumJS ships with a low-resolution set of images from Natural Earth II in Assets/Textures/NaturalEarthII.
  • The BaseLayerPicker also includes options for several sample online imagery and terrain sources. In an offline application you can disable that widget completely by passing baseLayerPicker : false to the Viewer widget's constructor.
const viewer = new Cesium.Viewer("cesiumContainer", {
  imageryProvider: new Cesium.TileMapServiceImageryProvider({
    url: Cesium.buildModuleUrl("Assets/Textures/NaturalEarthII"),
  }),
  baseLayerPicker: false,
  geocoder: false,
});

Alternatively use the imageryProviderViewModels and terrainProviderViewModels options to configure the sources that will be available in your offline application.

Source: Offline Guide

Hide Cesium Timeline and Animation Controller

viewer = new Cesium.Viewer(‘cesiumContainer’, {  
    timeline: false,  
    animation: false,  
});

Source: Is there a way to hide the Cesium Clock/Dial