cesium计算两个经纬度在窗口左上角和窗口右下角时屏幕的高度
时间: 2023-12-04 11:02:35 浏览: 239
要计算两个经纬度在窗口左上角和窗口右下角时屏幕的高度,需要使用Cesium的Camera类来获取窗口左上角和右下角的屏幕坐标,然后计算它们之间的距离。
具体步骤如下:
1. 获取窗口左上角的经纬度和窗口右下角的经纬度。假设它们分别为topLeft和bottomRight。
2. 创建一个Cesium.Cartographic对象表示左上角的经纬度。
```
var topLeftCartographic = new Cesium.Cartographic.fromDegrees(topLeft.longitude, topLeft.latitude);
```
3. 创建一个Cesium.Cartesian3对象表示左上角的世界坐标。
```
var topLeftPosition = viewer.scene.globe.ellipsoid.cartographicToCartesian(topLeftCartographic);
```
4. 创建一个Cesium.Cartographic对象表示右下角的经纬度。
```
var bottomRightCartographic = new Cesium.Cartographic.fromDegrees(bottomRight.longitude, bottomRight.latitude);
```
5. 创建一个Cesium.Cartesian3对象表示右下角的世界坐标。
```
var bottomRightPosition = viewer.scene.globe.ellipsoid.cartographicToCartesian(bottomRightCartographic);
```
6. 使用Cesium.Camera类的worldToScreen方法将左上角和右下角的世界坐标转换为屏幕坐标。
```
var topLeftScreen = new Cesium.Cartesian2();
viewer.camera.worldToScreen(topLeftPosition, topLeftScreen);
var bottomRightScreen = new Cesium.Cartesian2();
viewer.camera.worldToScreen(bottomRightPosition, bottomRightScreen);
```
7. 计算左上角和右下角屏幕坐标之间的距离。
```
var height = Math.abs(topLeftScreen.y - bottomRightScreen.y);
```
这样就可以计算出两个经纬度在窗口左上角和窗口右下角时屏幕的高度了。
阅读全文