cesium获取当前屏幕视角中心点和视角高度
时间: 2023-07-07 11:39:55 浏览: 455
要获取Cesium中当前屏幕视角中心点和视角高度,可以使用以下代码:
```javascript
var viewer = new Cesium.Viewer('cesiumContainer');
// 获取当前相机
var camera = viewer.camera;
// 获取当前视角中心点
var center = camera.position;
// 获取当前视角高度
var height = viewer.scene.globe.ellipsoid.cartesianToCartographic(center).height;
console.log('当前视角中心点:', center);
console.log('当前视角高度:', height);
```
这里,我们首先创建了一个Cesium的Viewer实例,并获取了当前相机。然后,通过相机的`position`属性获取了当前视角的中心点。最后,我们通过`viewer.scene.globe.ellipsoid.cartesianToCartographic(center)`方法将中心点转换为经纬度坐标,并获取其高度信息。
相关问题
cesium打印当前视角的中心点坐标和heading、pitch和roll
要打印输出当前Cesium视角的中心点坐标和heading、pitch和roll,你可以使用以下代码:
```javascript
var viewer = new Cesium.Viewer('cesiumContainer');
// 获取当前视角的camera对象
var camera = viewer.camera;
// 获取当前视角的中心点坐标
var center = viewer.scene.camera.pickEllipsoid(new Cesium.Cartesian2(viewer.canvas.clientWidth / 2, viewer.canvas.clientHeight / 2));
if (center) {
center = viewer.scene.globe.ellipsoid.cartesianToCartographic(center);
center = Cesium.Math.toDegrees(center.longitude) + ',' + Cesium.Math.toDegrees(center.latitude) + ',' + center.height;
}
// 获取当前视角的heading、pitch和roll
var heading = camera.heading;
var pitch = camera.pitch;
var roll = camera.roll;
// 打印输出中心点坐标和heading、pitch和roll
console.log('Center: ' + center);
console.log('Heading: ' + heading);
console.log('Pitch: ' + pitch);
console.log('Roll: ' + roll);
```
这段代码会在控制台输出当前视角的中心点坐标和heading、pitch和roll。注意,这里的中心点坐标是经度、纬度和高度三个参数组成的字符串,表示相机所在的位置。
cesium 取消视角锁定
如果您在使用 Cesium 进行三维场景展示时遇到了视角锁定的问题,可以通过以下方法来取消视角锁定:
1. 使用鼠标右键进行视角旋转:在 Cesium 场景中,您可以通过按住鼠标右键并拖动来旋转视角。如果视角被锁定,可能是因为您没有使用鼠标右键进行旋转。请尝试使用鼠标右键进行视角旋转,看看是否可以取消锁定。
2. 重置场景:如果您无法通过鼠标右键旋转视角来取消锁定,可以尝试重置场景。在 Cesium 中,可以通过以下代码来重置场景:
```javascript
viewer.camera.setView({
destination: Cesium.Cartesian3.fromDegrees(lon, lat, height),
orientation: {
heading: Cesium.Math.toRadians(0),
pitch: Cesium.Math.toRadians(-90),
roll: Cesium.Math.toRadians(0)
}
});
```
其中,`lon`、`lat`和`height`分别表示场景中心点的经度、纬度和高度。通过执行上述代码,您可以将视角重置为场景中心点,并取消视角锁定。
3. 检查代码:如果您是通过代码来创建 Cesium 场景的,可能是因为代码中存在视角锁定的设置。请检查代码中是否有设置 `viewer.scene.screenSpaceCameraController.enableInputs`、`viewer.scene.screenSpaceCameraController.enableRotate` 和 `viewer.scene.screenSpaceCameraController.enableTranslate` 等参数,如果存在,请将它们设置为 `true`,以取消视角锁定。
希望以上方法可以帮助您解决问题。
阅读全文