我正在使用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”)的方法
非常感谢。
答案 0 :(得分:0)
用户选择新图层时,BaseLayerPicker小部件calls this code。
该代码块中有很多样板小部件管理,但是就您而言,只有几行至关重要。首先,搜索并删除旧的现有活动图像图层:
imageryLayers.remove(layer);
然后,构建一个新的图像提供程序并将其添加到索引0(第一个位置,即基础图像图层):
imageryLayers.addImageryProvider(newProviders, 0);