首页 / Cesium / 使用示例
代码生成高程地形
官方示例用 ArcGIS 的高程服务。这里的等价做法是自己写一个高程回调,每个瓦片按坐标算出高度数组交给 Cesium。
源码与运行效果
提供者的输入输出
CustomHeightmapTerrainProvider 需要 width、height 两个采样数和一个 callback(x, y, level)。回调返回长度 width×height 的 Float32Array,数值是相对椭球的高程(米),按行优先排列。
采样数一般取 2 的幂,示例用 32,既够看出山形,也不会让每个瓦片的生成时间过长。
高度怎么算
示例用几组正弦函数叠加出山脉和盆地,再把海岸线附近压到 0 以下,看起来像大陆边缘。真实业务里这一步换成读 DEM 数据即可,接口不变。
可以直接改的地方
| 位置 | 改什么 | 效果 |
|---|---|---|
callback 里的振幅 | 800 改 2000 | 山更高 |
width / height | 32 改成 64 | 更细但更慢 |
tilingScheme | GeographicTilingScheme | 改用经纬度切片 |
先等瓦片:地形瓦片是异步生成的,相机快速移动时会先看到低层级瓦片,等一两秒再判断效果。