通过监听鼠标移动事件(MOUSE_MOVE),获取当前鼠标位置信息。
const handler = new ScreenSpaceEventHandler(viewer.scene.canvas);
handler.setInputAction((e) => {
// 节流
const curTime = Date.now();
if ((curTime - this._moveTime) < 100) return;
this._moveTime = curTime;
const ellipsoid = viewer.scene.globe.ellipsoid;
const position = viewer.scene.camera.pickEllipsoid(e.endPosition, ellipsoid);
if (position) {
const lla = ellipsoid.cartesianToCartographic(position);
const camera = viewer.scene.camera;
// 计算,取精确度
const latitude = Cesium.Math.toDegrees(lla.latitude).toFixed(6);
const longtitude = Cesium.Math.toDegrees(lla.longitude).toFixed(6);
const altitude = Cesium.Math.toDegrees(lla.height * 1e-3).toFixed(3);
const heading = Cesium.Math.toDegrees(camera.heading).toFixed(6);
const pitch = Cesium.Math.toDegrees(camera.pitch).toFixed(6);
const roll = Cesium.Math.toDegrees(camera.roll).toFixed(6);
}
}, ScreenSpaceEventType.MOUSE_MOVE);