cesium 获取当前经纬度和视角还有当前level层级
// 跟随鼠标获取经纬度和视角高度
var longitude_show=document.getElementById('longitude_show');
var latitude_show=document.getElementById('latitude_show');
var altitude_show=document.getElementById('altitude_show');
var elevation_show=document.getElementById('elevation_show');
var canvas=viewer.scene.canvas;
//具体事件的实现
var ellipsoid=viewer.scene.globe.ellipsoid;
var handler = new Cesium.ScreenSpaceEventHandler(canvas);
handler.setInputAction(function(movement){
//捕获椭球体,将笛卡尔二维平面坐标转为椭球体的笛卡尔三维坐标,返回球体表面的点
var cartesian=viewer.camera.pickEllipsoid(movement.endPosition, ellipsoid);
if(cartesian){
//将笛卡尔三维坐标转为地图坐标(弧度)
var cartographic=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=(viewer.camera.positionCartographic.height/1000).toFixed(2);
console.log(log_String,'经度');
console.log(lat_String,'纬度');
console.log(alti_String,'视角高度')
// console.log(height,'height');
// console.log(zoom,'zoom');
}
},Cesium.ScreenSpaceEventType.MOUSE_MOVE);
// 获取当前层级
function heightToZoom(height){
var A = 40487.57;
var B = 0.00007096758;
var C = 91610.74;
var D = -40467.74;
return Math.round(D+(A-D)/(1+Math.pow(height/C, B)));
}
var height = Math.ceil(viewer.camera.positionCartographic.height);
var zoom = heightToZoom(height);
console.log(zoom,'zoom');
// 定位到某个位置
var camera = viewer.scene.camera;
camera.flyTo({
//镜头的经纬度、高度。镜头默认情况下,在指定经纬高度俯视(pitch=-90)地球
destination: Cesium.Cartesian3.fromDegrees(113.664761,34.754152 , 10000),
orientation: {
heading: Cesium.Math.toRadians(0),//方向
pitch: Cesium.Math.toRadians(-15),//倾斜角度
roll: Cesium.Math.toRadians(0)
},
duration: 1.5, //动画持续时间
// complete: function(){ //飞行完毕后执行的动作
// }
});