与二维不同,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);