首页 / Cesium / 使用示例
经纬网格
按固定步长生成经线与纬线,赤道和本初子午线用另一种颜色标出。 网格线全部由程序计算,不依赖任何瓦片服务。
源码与运行效果
线为什么要在纬度上采样
一条纬线只有两个端点时,Cesium 会按 arcType: GEODESIC 沿大圆走,
画出来的不是水平圈而是斜穿地球的弧。所以纬线必须每隔几度取一个点拼成折线,
采样间隔越小越接近正圆,示例取 5 度。
经线本身就在大圆上,理论上两点足够,但为了和纬线共用同一套逻辑, 同样按 5 度采样,从南纬 85 度到北纬 85 度,避开两极的奇点。
可调参数
| 位置 | 改什么 | 效果 |
|---|---|---|
| 工具栏的 15° / 30° / 45° | 换步长 | 网格密度变化,线数从 36 条降到 12 条 |
LINE 常量 | 透明度 0.22 调到 0.5 | 网格更明显,适合投影到大屏 |
for (lat = -85; lat <= 85; lat += 5) | 5 改成 2 | 经线更平滑,顶点数增加 2.5 倍 |
addLabel 的坐标 | 换赤道与子午线标注位置 | 标签跟着走,字号在 font 里改 |
网格按球体画,不贴地形。示例没有加地形,线落在椭球面上。
如果场景里加了地形,网格会穿进山体,需要给 polyline 打开
clampToGround: true,代价是顶点投影每帧重算,几百条线就会明显掉帧。
和调试用网格的区别
Cesium 内置的 GridImageryProvider 是把网格画在瓦片上,
跟着瓦片层级走,用于检查瓦片是否错位。这里的经纬网格是真实的地理要素,
可以随相机旋转、可以被拾取、可以和图元一起参与深度测试,两者用途不同。