SceneModePickerViewModel
是一个控制场景模式(场景可视化的不同角度)的视图模型类。它允许用户切换场景模式,包括2D、3D、Columbus View等。
new SceneModePickerViewModel(options)
名称 | 类型 | 默认值 | 描述 |
---|---|---|---|
options | Object | 可选项 | 构造函数选项 |
名称 | 类型 | 默认值 | 描述 |
---|---|---|---|
scene | Scene | 可选项 | Cesium Scene 实例 |
duration | Number | undefined | 场景模式切换的持续时间,单位秒 |
enableTilt | Boolean | true | 是否启用倾斜模式 |
enableZoom | Boolean | true | 是否启用滚动缩放 |
enableCompass | Boolean | true | 是否显示指南针 |
enableDistanceLegend | Boolean | true | 是否显示距离图例 |
enableCompassOuterRing | Boolean | true | 是否显示指南针外环 |
String
类型,略缩图的悬停文本,显示当前选择的场景模式。
Number
类型,当前场景模式,Cesium定义的三种场景模式如下:
SceneMode.SCENE2D
: 2D模式SceneMode.SCENE3D
: 3D模式SceneMode.COLUMBUS_VIEW
: 圆柱视图销毁此对象并释放与其相关的资源。
销毁此对象并释放与其相关的资源。
点击下拉菜单时调用此函数,用于显示或隐藏下拉列表。
缩小视图。
放大视图。
启动或停止倾斜模式。
切换到2D场景模式。
切换到3D场景模式。
切换到圆柱视图场景模式。
场景模式更改事件。函数参数如下:
function(sceneModePickerViewModel, mode) {}
参数 | 类型 | 描述 |
---|---|---|
sceneModePickerViewModel | SceneModePickerViewModel | SceneModePickerViewModel 实例 |
mode | Number | 当前场景模式的Cesium定义值,可能会是3个值之一:SceneMode.SCENE2D 、SceneMode.SCENE3D 或SceneMode.COLUMBUS_VIEW 。 |
展开或隐藏下拉菜单时触发的事件。函数参数如下:
function(sceneModePickerViewModel, isDropDownVisible) {}
参数 | 类型 | 描述 |
---|---|---|
sceneModePickerViewModel | SceneModePickerViewModel | SceneModePickerViewModel 实例 |
isDropDownVisible | Boolean | true :下拉列表可见,false :下拉列表不可见。 |
以下示例演示如何使用场景模式选择器。
<!DOCTYPE html>
<html lang="en">
<head>
<title>SceneModePickerViewModel Example</title>
<script src="https://cesium.com/downloads/cesiumjs/releases/1.86/Build/Cesium/Cesium.js"></script>
<style>
#cesiumContainer {
height: 800px;
width: 100%;
}
</style>
</head>
<body>
<div id="cesiumContainer"></div>
<div id="toolbar">
<button id="2D">2D view</button>
<button id="3D">3D view</button>
<button id="columbus">Columbus view</button>
</div>
<script>
// 创建Cesium Viewer对象
var viewer = new Cesium.Viewer('cesiumContainer');
// 获取SceneModePickerViewModel对象
var sceneModePickerViewModel = viewer.sceneModePicker.viewModel;
// 监听场景模式更改事件
sceneModePickerViewModel.sceneModeChanged.addEventListener(function(viewModel, mode) {
if(mode === Cesium.SceneMode.SCENE2D) {
console.log('2D mode');
} else if(mode === Cesium.SceneMode.SCENE3D) {
console.log('3D mode');
} else {
console.log('Columbus view');
}
});
// 绑定3个按钮的单击事件
document.getElementById('2D').addEventListener('click', function() {
sceneModePickerViewModel.switchTo2D();
});
document.getElementById('3D').addEventListener('click', function() {
sceneModePickerViewModel.switchTo3D();
});
document.getElementById('columbus').addEventListener('click', function() {
sceneModePickerViewModel.switchToColumbusView();
});
</script>
</body>
</html>