我想获取用户在Cesium应用程序上选择的基本层。
有什么方法可以获取所选的基础层,例如Mapbox Streets或OpenStreet Map?
还是更改基础层时触发的任何事件?
感谢您的帮助。 预先感谢。
答案 0 :(得分:1)
用户使用BaseLayerPicker
小部件更改地形和图像。在内部,此UI小部件使用Knockout
库来跟踪其viewModel的状态。您可以使用它来订阅viewModel中的更改。
这里是live demo。
var viewer = new Cesium.Viewer('cesiumContainer');
var hud = document.getElementById('toolbar');
function updateHud() {
hud.innerHTML = 'Imagery: ' + viewer.baseLayerPicker.viewModel.selectedImagery.name +
'<br/>Terrain: ' + viewer.baseLayerPicker.viewModel.selectedTerrain.name;
}
// First run
updateHud();
// Update when imagery changes.
Cesium.knockout.getObservable(viewer.baseLayerPicker.viewModel,
'selectedImagery').subscribe(updateHud);
// Update when terrain changes.
Cesium.knockout.getObservable(viewer.baseLayerPicker.viewModel,
'selectedTerrain').subscribe(updateHud);
答案 1 :(得分:0)
可以从ImageryLayerCollection
向地图添加图层
https://cesiumjs.org/Cesium/Build/Documentation/ImageryLayerCollection.html
var layer = new ImageryLayer(imageryProvider);
layers.add(layer);
ImageryLayer
中存储了不同的ImageryLayerCollection
通过获取ImageryLayerCollection
的0-索引,将返回首先添加到地图的ImageryLayer
。例如
对于
var collection = new Cesium.ImageryLayerCollection();
然后
var layer = collection.get(0);