获取用户选择的基础层
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);
我想获取用户在 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);