Cesium.Camera 转换为屏幕坐标
时间: 2023-12-14 13:37:10 浏览: 98
要将场景坐标(Cartesian3)转换为屏幕坐标(pixel),可以使用以下代码:
```javascript
var position = Cesium.Cartesian3.fromDegrees(longitude, latitude, height);
var canvas = viewer.canvas;
var pixel = new Cesium.Cartesian2();
var result = Cesium.SceneTransforms.wgs84ToWindowCoordinates(viewer.scene, position, pixel);
if (result !== undefined) {
// 在屏幕上绘制一个点
var ctx = canvas.getContext('2d');
ctx.fillStyle = 'red';
ctx.beginPath();
ctx.arc(pixel.x, canvas.height - pixel.y, 10, 0, Math.PI * 2, true);
ctx.fill();
}
```
其中,`longitude`、`latitude` 和 `height` 是场景坐标点的经度、纬度和高度。`viewer` 是 Cesium.Viewer 对象。
代码中的 `Cesium.SceneTransforms.wgs84ToWindowCoordinates` 方法将场景坐标转换为屏幕坐标。 `pixel` 是用于存储结果的 `Cartesian2` 对象。如果转换成功,返回值为 `true`,否则为 `undefined`。在这个例子中,如果转换成功,会在屏幕上绘制一个红色的点。