如何更改CesiumJS查看器的基本层URL

时间:2019-10-21 16:22:49

标签: cesium

我正在使用CesiumJS实例,并使用来自来源A的imageryProvider来显示地球的底图。

var viewer = new Cesium.Viewer('cesiumContainer', imageryProvider:providerA);

现在,在使用查看器时,我希望能够更改此地图以在特定事件中从providerB获取图像。

我尝试过:

viewer.scene.imageryLayers.get(0).imageryProvider.url = providerB.url

但是,这似乎不起作用,并且无论如何也感觉像黑客一样。 我在Cesium的文档中找不到任何内容。 这完全可能,而无需重新启动/重新创建查看器实例吗? 我知道有一个Cesium.BaseLayerPicker(https://cesium.com/docs/cesiumjs-ref-doc/BaseLayerPicker.html) 但是,我看不到此选择器调用“ select”)的方法

非常感谢。

1 个答案:

答案 0 :(得分:0)

用户选择新图层时,BaseLayerPicker小部件calls this code

该代码块中有很多样板小部件管理,但是就您而言,只有几行至关重要。首先,搜索并删除旧的现有活动图像图层:

    imageryLayers.remove(layer);

然后,构建一个新的图像提供程序并将其添加到索引0(第一个位置,即基础图像图层):

    imageryLayers.addImageryProvider(newProviders, 0);