Underground, TypeScript, and Global 3D Buildings in CesiumJS 1.70
by Omar Shehata
Today’s 1.70 release of CesiumJS brings 3 major, highly requested updates.
Cesium OSM Buildings
Cesium OSM Buildings is a 3D buildings layer covering the entire world built with OpenStreetMap data. It’s available as a 3D Tileset for all Cesium ion users and comes with rich per-feature data like building name, address, opening hours, and much more.
Cesium OSM Buildings in New York City, Seattle, Washington DC, and Burj Khalifa, Dubai.
Read more about this new global layer and how to use it in your applications.
We now have better support for visualizing underground scenes, from large geological layers underneath the Earth to mines, caves, and utilities. CesiumJS 1.70 adds the ability to make the globe translucent to visualize the data underneath, and allow the camera to freely go underground.
These improvements to CesiumJS were made as part of a collaboration with our friends at Camptocamp. Their work supports Switzerland’s Federal Office of Topography, swisstopo, which has built an interactive 3D map of the entire country using Cesium.
Camptocamp is using these new underground features in swissgeol, a 3D viewer for geological data on the web. Its goal is to visualize lots of different datasets in one scene — like boreholes, seismic data, and the ability to see cross sections of the ground. Camptocamp said of this new Cesium-based viewer:
The 3D underground viewer swissgeol will be the future main entrypoint at swisstopo for accessing geological data, and it could become an essential collaboration tool for the entire geoscience community in and around Switzerland
Visualizing the bedrock underneath terrain in Camptocamp’s 3D underground viewer.
These live code examples show you how to use the new globe transparency features:
- How to enable globe transparency
- Enable transparency only on a section of the ground
- Customize what’s visible underground
Try it out and let us know what you’re working on or any feedback you have in this forum thread.
Finally, as of this 1.70 release, CesiumJS now ships with official TypeScript type definitions! The most up-to-date and correct definition files will now ship with each new release, and TypeScript support will be officially tracked as part of the CesiumJS GitHub repository.
Even if you are not a TypeScript user, the nature of this work improves the correctness and completeness of CesiumJS API Reference documentation, making it a big win for the entire CesiumJS community.
Read more about how this works and what all went into this effort with Matt’s deep architectural dive.
Try out CesiumJS 1.70
Update to the latest CesiumJS and let us know what you think! You can post any feedback and questions about this release in this forum thread.