How will Cesium Ion affect me?


I've just read through the news posts about Cesium Ion, and I am wondering how it will affect me.

At the moment, I'm developing a site that plots some gps coordinates into a CesiumJS representation of the world. This is how I set up terrain and imagery:

    // Add Bing imagery
    viewer.imageryLayers.addImageryProvider(new Cesium.BingMapsImageryProvider({
        url: '',
        mapStyle: Cesium.BingMapsStyle.AERIAL // Can also use Cesium.BingMapsStyle.ROAD

    // Load STK World Terrain
    viewer.terrainProvider = new Cesium.CesiumTerrainProvider({
        url: ‘’,
        requestWaterMask: false, // required for water effects
        requestVertexNormals: false // required for terrain lighting

Is the above part of what is being moved to Cesium Ion, and will I have to pay for further use of these, if it are to be used for funded research? Or are the new Cesium Ion only for special terrain providers and hosting custom stuff?

I'm using Cesium 1.44 at the moment.

Regards Bjarke

Hi Bjarke,

Cesium ion is for streaming world terrain and imagery, and tiling and streaming your own terrain and imagery. Curated datasets and tiling pipelines for other data types such as point clouds and photogrammetry will also roll out this year.

If you are using Cesium ion services for funded research beyond “exploratory development”, you are right that it falls into a commercial account plan, not the free Community plan. It could be worth double checking your use case with as mentioned here:



I understand that a license key is required for terrain provider because it is hosted by Cesium. But why we need it for Bing maps?

A license key has always been required for Bing maps, the key that shipped with Cesium was for demo purposes only and would expire after 2 releases. It has always been a violation of the terms of service to use Bing maps without specifying you’re own Bing API key. Cesium has always been clear about this (via documentation, a console warning, and an onscreen credit).

Starting with Cesium 1.45, we no longer ship an embedded Bing API key because we are now providing default imagery, terrain, and geocoding via Cesium ion. It just so happens that Bing is also the default imagery provider for Cesium ion, but it gets initialized in Cesium via ion API instead of directly through Bing. This is why we recommend generating your own ion access token (instead of the previous recommendation of generating your own Bing key).

Of course using ion in Cesium is completely optional. Cesium will always support open standards and formats. We document how to go back to the old defaults in the 1.45 changelog:

To directly answer Bjarke’s original question, if you wish to switch to ion for your application, you can create a new community account at and use the following code:

Cesium.Ion.defaultAccessToken = ‘’;

var viewer = new Cesium.Viewer(‘cesiumContainer’, {

imageryProvider: Cesium.createWorldImagery(),

terrainProvider: Cesium.createWorldTerrain(),

baseLayerPicker: false


If you only want to use ion for terrain, you can still use Bing maps directly (see my Changelog link above).

Hope that helps, but please let me know if you have any additional questions.



Hello. Will the STK Terrain server also be deprecated?


I assume you mean the STK Terrain Server product offered by AGI? It is not deprecated and will continue to be a product all on its own. If you’re currently an STK Terrain Server customer, I recommend you reach out to your AGI sales rep with any additional questions.

Cesium ion is/will also be offered as an onPrem enterprise solution for organizations that need to bring all of their tiling and analytics capabilities in house.

The only thing being shut down is the hosted STK Terrain Server instance previously made available to the Cesium community.

Hope that clarifies things. Thanks,


Thank you, that did clarify things!

FYI, I think the code example for setting the map style to AERIAL_WITH_LABELS here is outdated. I wasn’t able to get labels to appear using

mapStyle : Cesium.BingMapsStyle.AERIAL_WITH_LABELS


but this works

imageryProvider: Cesium.createWorldImagery({

style: Cesium.IonWorldImageryStyle.AERIAL_WITH_LABELS,



Thanks for pointing that out, Jamie! I just opened a PR to fix, #6860.

We have an enterprise bing license that we used with nasa world wind and were looking and migrating to cesium. Do we need cesium ion licence as well to get the terrain data? Is there an interface in cesium to use Bing for Terrain Data? We also use the AGI STK Terrain provider for analysis.

Bing provides satellite imagery, so if you already have a license for that, you could load it from your own source and then combine it with Cesium World Terrain loaded from ion (you’d need a paid ion account, see