背景: 我国正在发展低空经济,我们做的是飞行服务(飞服)项目,要把低空空域划成能计算、能查询、能下发的单元。选的是北斗网格:按经纬度和高度把地理空间编码成一个个三维盒子,一个编码对应一块确定的空间范围。在 Cesium 里加载 L5、L6、L7 三档网格,给一个多边形和一段高度范围,就能把落在里面的格子填出来,得到一块禁飞区或管控区。三档的水平格边长依次约 123.7、61.8、7.73 米:比 L5 粗的看不出区域形状,比 L7 细的在这个业务尺度上没有意义。
原因: 麻烦来自多出来的那个方向。二维地图只要横向铺满,三维还要按高度一层层堆;而且高度步长不是独立参数,它由水平步长推出来,水平细一倍、高度也跟着细一倍。L6 到 L7 每边 8 倍,三个方向乘起来就是 512 倍 —— 换一档不是画得密一点,是同一片空间里的格子数量直接乘 512。
压测示例用了六个真实的天津、北京管控区,它们在 L7 下的理论总量是 70,986,328 个格子;而视口配的活动预算上限是 180,000,也就是任何一帧最多允许约 0.25% 的格子存在。剩下那 99.75% 必须永远不落地 —— 因为瓶颈不在光栅化,在生成:这些格子还没开始画,光实例矩阵和颜色就是 7000 万 × 80 字节 = 5.68 GB。