美文网首页
Cesium计算近似当前level级别

Cesium计算近似当前level级别

作者: 孤竹行 | 来源:发表于2021-10-29 12:49 被阅读0次

在这里首先说明一个问题,就是cesium加载切片图层的时候,它会混合层级加载,不像二维地图,当前层级都一致,通过拉伸镜头对地球的距离,发现拉伸远近与与二维地图有以下 的关系:


z altitude (metres)

-----  -----------------

3          10311040

4          5932713

5          2966357

6          1483178

7            741589

8.6          243624

11.35          36310

13.85          6410

15.26          2411

17.01            717

18.27            214

19.6            119

20.77            50

21                44

有了对应关系如何得到通过数据进行拟合曲线,可以用一些软件例如orgin8.0或者spass,这里有一个国外在线模拟函数模拟

整理可得到以下函数:


function altitudeToZoom(altitude) {

    var A = 40487.57;

    var B = 0.00007096758;

    var C = 91610.74;

    var D = -40467.74;

    return D+(A-D)/(1+Math.pow(altitude/C, B));

}

这样算出来层级不是整数,如果你想要整数可以替换为


Math.round(D +(AD)/(1 + Math.pow(altitude / C,B))

反向计算

通过level层级,计算高度。


zoomToAltitude(zoom) {

        var A = 40487.57;

        var B = 0.00007096758;

        var C = 91610.74;

        var D = -40467.74;

        var altitude  = C * Math.pow(((A-D)/ (zoom-D) -1), 1/B);

        return altitude;

    }

相关文章

网友评论

      本文标题:Cesium计算近似当前level级别

      本文链接:https://www.haomeiwen.com/subject/pmpaoltx.html