因考虑到性能 将viewer挂载到了window上
MOUSE_MOVE事件
var canvas = window.$viewer.scene.canvas;
var ellipsoid = window.$viewer.scene.globe.ellipsoid;
var handler = new Cesium.ScreenSpaceEventHandler(canvas);
handler.setInputAction(function (movement) {
//捕获椭球体,将笛卡尔二维平面坐标转为椭球体的笛卡尔三维坐标,返回球体表面的点
var cartesian = window.$viewer.camera.pickEllipsoid(
movement.endPosition,
ellipsoid
);
if (cartesian) {
//将笛卡尔三维坐标转为地图坐标(弧度)
var cartographic =
window.$viewer.scene.globe.ellipsoid.cartesianToCartographic(
cartesian
);
//将地图坐标(弧度)转为十进制的度数
var lat_String = Cesium.Math.toDegrees(cartographic.latitude).toFixed(
4
);
var log_String = Cesium.Math.toDegrees(
cartographic.longitude
).toFixed(4);
var alti_String = (
window.$viewer.camera.positionCartographic.height / 1000
).toFixed(2);
let radiansPos = {};
radiansPos["latitude"] = lat_String;
radiansPos["longitude"] = log_String;
radiansPos["altitude"] = alti_String;
console.log(radiansPos);
that.$store.commit("getLong", radiansPos);
}
}, Cesium.ScreenSpaceEventType.MOUSE_MOVE);