Change imagery provider runtime using Cesium.Widget

2,070 views
Skip to first unread message

bamp...@gmail.com

unread,
Mar 10, 2016, 10:58:10 AM3/10/16
to cesium-dev
Hi,

I have the following code that creates a cesium widget:

var viewer = new Cesium.CesiumWidget('cesiumContainer');

Bing provider is loaded by default, as the documentation states. How can I change the provider runtime? I tried the following snippet with no luck. The old provider disappears but the globe shows only in blue.

var layers = viewer.imageryLayers;
layers.remove(layers.get(0));
layers.addImageryProvider(layer);

Please note that layer is an object that I get from Cesium.createDefaultImageryProviderViewModels collection.

Thanks

Hannah Pinkos

unread,
Mar 10, 2016, 11:27:33 AM3/10/16
to cesium-dev, bamp...@gmail.com
Hello,

Checkout our our Imagery Layers tutorial for how to change your default imagery and add other imagery to the globe: http://cesiumjs.org/Cesium/Apps/Sandcastle/index.html?src=Imagery%20Layers.html&label=Showcases

Best,

Hannah

bamp...@gmail.com

unread,
Mar 10, 2016, 11:36:55 AM3/10/16
to cesium-dev, bamp...@gmail.com
Hi Hannah,

So, as I can see the only way to change default imagery, is to create a new viewer object?

Hannah Pinkos

unread,
Mar 10, 2016, 12:57:24 PM3/10/16
to cesium-dev, bamp...@gmail.com
No, you can use the ImageryLayerCollection.remove function to remove an existing layer.
Here is an example how to change the default imagery layer:

var viewer = new Cesium.Viewer('cesiumContainer', {
    baseLayerPicker
: false
});

var layers = viewer.imageryLayers;
var baseLayer = layers.get(0);
layers
.remove(baseLayer);
layers
.addImageryProvider(new Cesium.ArcGisMapServerImageryProvider({
    url
: '//server.arcgisonline.com/ArcGIS/rest/services/World_Street_Map/MapServer'
}));

Best,

Hannah

bamp...@gmail.com

unread,
Mar 10, 2016, 1:15:03 PM3/10/16
to cesium-dev, bamp...@gmail.com
That actually worked.Thank you veru much for your help!
Reply all
Reply to author
Forward
0 new messages