STK World Terrain down?

Tried setting up a CesiumTerrainProvider this morning and kept getting the following error:

XMLHttpRequest cannot load No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'http://localhost:8080' is therefore not allowed access. The response had HTTP status code 503.

I believe that’s been deprecated, terrain is now served from Cesium ion. Does that work for you?

Also see Matt’s post here for more context and background:

Dear Omar.


I am a university student in Japan. I use Cesium in my research activities.

Is it understanding that STK is no longer usable?

How do I move to Cesium ion?


You can sign up for an ion account here:

You will be signed up for a Community plan, which is free for non-commercial use or unfunded educational activities. You can read more information on our pricing page to determine if you need to upgrade to a commercial plan:

After you have your account, you’ll be able to add Cesium World Terrain to your cesium application using this code:

Cesium.Ion.defaultAccessToken = ‘my_access_token’;

var viewer = new Cesium.Viewer(‘cesiumContainer’,{
terrainProvider : new Cesium.CesiumTerrainProvider({
url: Cesium.IonResource.fromAssetId(1)


You can find your access token on once you create an account.

Let us know if you have any questions. You can send an email to if you need more information or would like to discuss things outside the public forum.




Thanks for your reply.

I'm really happy to reply. Thank you very much.

I am a Japanese college student and I use Cesium in my research activities.
Because English is not good at it, it may be a childish sentence, but please forgive me.

I am developing a simulator as if the image is moving on the map by displaying the image on the map displayed by Cesium and shifting the center latitude and the center longitude of the image.

To obtain the latitude and longitude, we use the following code.

Cesium.loadJsonp ('//')

Now, transitioning to Cesium Ion, the globe is now displayed. However, if you execute it, an error will appear in the previous code.

     viewer.terrainProvider = new Cesium.CesiumTerrainProvider ({
       url: '//'


This code is the previous code, but with this code you can successfully get latitude and longitude by loadJsonp.

Can CesiumIon get loading data with loadJsonp?

You should be able to use the code in Hannah’s post to load the terrain, so use the ion function instead of the old STK terrain URL.

It looks like you’re trying to use geocoding? If so, you can use the built in Geocoder:

You can read about using the open source Pelias geocoder with Cesium here:

Hope this helps!


I have signed up cesium ion account. I will try to render terrain type asset in my application, but it didn't work. I am using below code :

Cesium.Ion.defaultAccessToken = 'myAccessToken';

var terrainProvider = new Cesium.CesiumTerrainProvider({
                            url: Cesium.IonResource.fromAssetId(3956)
viewer.terrainProvider = terrainProvider;

Didn't get any error and terrain not working.

Did you check the browser console and network tab? Are you getting any 404’s or other errors?

Did you try the “Open in Sandcastle” link under the asset preview on your dashboard in ion? Can you share that link here?

Didn't get any error in console. I have tried in asset Sandcastle link and it is working here. but when i will try in my application it didn't work. Please check this link:

The Sandcastle you linked is only loading Cesium World Terrain (asset id 1) as opposed to your terrain (with asset id 3965). Is this the Sandcastle link you got when selecting your terrain asset in ion’s dashboard?

ion should be able to zoom in to the boundaries of your custom terrain. Are you able to see your custom terrain in Sandcastle? If so, I’m not sure why it wouldn’t be working in your application, if you’re using the same token and the same code.

I would try creating a simple example locally that just has this code, then add it into your application, and try to isolate where the issue is that way.