cesium获取当前层级

与二维不同,cesium其实没有层级的概念,二维之中当前层级是由zoom来控制,但是三维,视角的范围全靠视角高度来控制。

var currentMagnitude = viewer.camera.getMagnitude();
console.log('currentMagnitude - ' + currentMagnitude);
viewer.camera.zoomIn((10000000));
console.log('NewMagnitude - '+ viewer.camera.getMagnitude());

zoomin代表高度拉近多少。

zoomout代表视角高度拉远多少,也不用去管当前视角高度,因此他就是相对于当前高度的

 

//在后来的实践中,发现还是需要计算二维对应的层级。

查看源码可以发现,该函数使用到了层级的概念

requestImage具体请求瓦片数据

TimeDynamicImagery  将层级传给requestImage函数--暂停研究

https://www.jianshu.com/p/2d4bd6e30c1b 打包命令

 

二维之中可以用地理距离除canvas的宽度得到resolution去与标准的resolution集比较

但cesium的层级好像不可以这样算。先暂时记录一下。包括鼠标事件。84坐标与墨卡托投影的转换

获取当前视角范围

https://blog.csdn.net/yk583443123/article/details/90521081

cesium中的鼠标事件

https://blog.csdn.net/qq_30100043/article/details/86637203

84坐标系转为墨卡托坐标系

https://blog.csdn.net/a0405221/article/details/78772303

var earthRad = 6378137.0;
var handler = new Cesium.ScreenSpaceEventHandler(viewer.canvas);

handler.setInputAction(function(event) {
    var rectangle = viewer.camera.computeViewRectangle();
    // var west =rectangle.west / Math.PI * 180;
    // var east = rectangle.east / Math.PI * 180;
    var dis=(rectangle.west- rectangle.east)*earthRad
    console.log(dis/700)
}, Cesium.ScreenSpaceEventType.WHEEL);