首页 / OpenLayers / 使用示例
WebGL 山体阴影
同一份页面内高程数据,通过坡度、坡向和太阳角度算出明暗,叠加在 OSM 底图上。
源码与运行效果
说明
高程按 Terrarium 公式编码:red * 256 + green + blue / 256 - 32768。WebGLTile 样式用 ['band', 1, xOffset, yOffset] 取相邻像素高程,求出坡度和坡向,再与太阳高度角、方位角计算光照入射角。滑块分别调整垂直夸张、太阳高度和方位,样式变量更新后即时重算。
| 操作 | 结果 |
|---|---|
| 拖动「太阳高度」到 10° | 阴影变长,山体明暗对比增强 |
| 把「垂直夸张」调到 2.5 | 山脊和沟谷的起伏更明显 |
| 拖动「太阳方位」 | 亮面和暗面随光源方向旋转 |
山体阴影只表达地形起伏,不适合作为唯一底图;与等高线或色带叠加时,把阴影层透明度控制在 0.3–0.6。