Cesium 实战 51 - 线热力图 Cesium 实战 51 - 线热力图核心代码1. 线宽参数2. Canvas 密度图的线宽估算3. 密度采样与色带4. 自定义 Primitive5. 渲染调度参数说明页面参数着色器 uniform关键 API完整代码实现要点Canvas 线宽的近似最小可见宽度对数深度与地平线剔除性能在线示例线热力图画的是连线。几百条线各自带一点透明度,叠在同一片屏幕上,叠得越多颜色越热。这个示例把线宽按公里配置,线带贴着地表展开,远处投影自然变窄;密度用 Canvas2D 累积,再由 Cesium 自定义 Primitive 在片元里按屏幕坐标采样。热力会被地形和地球背面挡住,贴地高度、线宽和密度都能在面板上调整。核心代码u_worldHalfWidth:线宽(米)的一半,用来展开 ribbon顶点着色器:远处投影不足 1 像素时做最小放大,线带不会消失Canvas 密度图:按线中点的距离估算屏幕线宽,密度带和 ribbon 宽度大致对得上Cesium.DrawCommand+ShaderProgram:一次 GPU 绘制,深度测试照常生效czm_vertexLogDepth()/czm_writeLogDepth():写出的深度要和场景的对数深度一致1. 线宽参数线宽滑杆的单位是 km。syncUniforms把它换算成米的一半,写进 uniform;顶点着色器直接拿这个数做侧向偏移。