cesium 三维坐标转为二维坐标
时间: 2023-07-30 10:12:58 浏览: 68
将 Cesium 中的三维坐标转换为二维坐标需要进行以下步骤:
1. 获取场景的相机位置和朝向。
2. 将三维坐标转换为屏幕坐标。
3. 对屏幕坐标进行裁剪。
具体实现方法如下:
1. 获取场景的相机位置和朝向:
```javascript
var scene = viewer.scene;
var camera = scene.camera;
var position = camera.position;
var direction = camera.direction;
```
2. 将三维坐标转换为屏幕坐标:
```javascript
var canvas = viewer.canvas;
var ellipsoid = scene.globe.ellipsoid;
var positionCartographic = ellipsoid.cartesianToCartographic(position);
var positionCartesian3 = ellipsoid.cartographicToCartesian(positionCartographic);
var frustum = new Cesium.Frustum();
var projection = scene.mapProjection;
frustum.near = 0.1;
frustum.far = 1.0e9;
frustum.aspectRatio = canvas.clientWidth / canvas.clientHeight;
frustum.computeCullingVolume(camera.position, camera.direction, camera.up);
var positionProjected = projection.project(positionCartesian3);
var positionScreen = new Cesium.Cartesian2(
((positionProjected.x / frustum.right) + 1) * canvas.clientWidth / 2,
((1 - positionProjected.y / frustum.top) * canvas.clientHeight / 2)
);
```
3. 对屏幕坐标进行裁剪:
```javascript
var positionClamped = new Cesium.Cartesian2(
Cesium.Math.clamp(positionScreen.x, 0, canvas.clientWidth),
Cesium.Math.clamp(positionScreen.y, 0, canvas.clientHeight)
);
```
最终得到的 `positionClamped` 就是将 Cesium 中的三维坐标转换为二维屏幕坐标后进行裁剪后的结果。
相关推荐
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)