获取用户选择的基础层

Get the base layer selected by user

我想获取用户在 Cesium 应用程序上选择的基础层。

有什么方法可以让我们获得选定的基础图层,例如 Mapbox Streets 或 OpenStreet Map?

或者基础层改变时触发的任何事件?

感谢任何帮助。 提前致谢。

用户使用 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);