一 、获取当前视角的经纬度
var cartographic = Cesium.Ellipsoid.WGS84.cartesianToCartographic(viewer.camera.position); var longitude = Cesium.Math.toDegrees(cartographic.longitude); var latitude = Cesium.Math.toDegrees(cartographic.latitude); var altitude = cartographic.height; var pitch =viewer.camera.pitch; var roll =viewer.camera.roll; var heading =viewer.camera.heading; var angle = new Array(); angle.push(longitude); // 经度 angle.push(latitude); // 纬度 angle.push(altitude); // 海拔 angle.push(pitch); // 俯仰角 angle.push(roll); // 俯仰角 angle.push(heading); // 俯仰角
二、鼠标的经纬度
//鼠标移动获取坐标 handler3D.setInputAction(function (movement) { //获取鼠标位置,camera.pickEllipsoid()返回一个cartesian类型位置 var my_ellipsoid = viewer.scene.globe.ellipsoid; let click_position = viewer.scene.camera.pickEllipsoid(movement.endPosition,my_ellipsoid); if(click_position) { //位置数据转换只地理数据类型 let carto_position = my_ellipsoid.cartesianToCartographic(click_position); let longitude = Cesium.Math.toDegrees(carto_position.longitude).toFixed(6); let latitude = Cesium.Math.toDegrees(carto_position.latitude).toFixed(6); console.log("坐标的位置为"+longitude+"经度,"+latitude+"纬度") ; } }, Cesium.ScreenSpaceEventType.MOUSE_MOVE);
三、视角中心点经纬度
var result = window.viewer.camera.pickEllipsoid(
new Cesium.Cartesian2(
window.viewer.canvas.clientWidth / 2,
window.viewer.canvas.clientHeight / 2,
),
);
var curPosition = Cesium.Ellipsoid.WGS84.cartesianToCartographic(result);
var lon = (curPosition.longitude * 180) / Math.PI;
var lat = (curPosition.latitude * 180) / Math.PI;
var pitch = Number((viewer.camera.pitch).toFixed(2));
var angle = new Array();
angle.push(lon); // 经度
angle.push(lat); // 纬度
angle.push(pitch); // 俯仰角
四、获取相机高度
var altitude=viewer.camera.positionCartographic.height;