首页 > 建站教程 > WebGL教程 Threejs教程 >  Cesium HeightReference详解正文

Cesium HeightReference详解

HeightReference 是 Cesium 中用来表示“一个物体的位置高度是相对于什么参考面”而设定的常量集合。它控制的是物体的高度是绝对的,还是相对于地形或 3D Tiles(建筑模型等)的。它的本质就是控制 Z 轴的参考标准。如果在 Cesium 场景里控制一个实体或模型高度,这个属性会跟怎么摆放它、贴不贴地、有无浮空效果直接相关。


每个值的含义:

🔹 HeightReference.NONE

    含义:高度是绝对值,不受地形或 3D Tiles 影响。

    举例:比如让模型悬在 1000 米高空,不管下面是山还是楼。

    ✅ 常用于卫星、飞机等位置。


🔹 CLAMP_TO_GROUND

    含义:物体贴着地表或 3D Tiles 放,不考虑高度值。

    举例:像画线、标点那种贴地效果。

    🚫 无法设置高度(height 值会被忽略)。


🔹 RELATIVE_TO_GROUND

    含义:相对于地形或 3D Tiles 的表面设置高度。

    举例:如果高度设为 50,意思是离当前点的地面 50 米,不管那是山坡还是建筑。

    ✅ 常用于无人机、风车、灯杆这类“贴地飞起”的东西。


🔹 CLAMP_TO_TERRAIN

    含义:只贴地形(Terrain),不理会 3D Tiles(建筑、模型等)。

    举例:比如一个山坡上有楼,那这个物体会贴在山坡上,而不是楼顶。

    ✅ 用在建筑模型不重要,只关注自然地形的场景。


🔹 RELATIVE_TO_TERRAIN

    含义:只以地形为参考,设置相对高度。

    举例:同样是“高于地面 10 米”,这里只参考地形,不考虑上面有没有 3D 建筑。

    ✅ 比较适合自然环境中的飞行物。


🔹 CLAMP_TO_3D_TILE

    含义:贴在 3D Tiles 表面(比如楼房、道路模型等)。

    ✅ 常用于贴墙、贴模型、AR 效果。


🔹 RELATIVE_TO_3D_TILE

    含义:相对于 3D Tiles 的表面设置高度。

    ✅ 比如在某栋楼顶上加个天线,可以设为“楼顶上 5 米”。


简化记忆:

名字基准参考物高度是否生效用法
NONE无(绝对)精准控制高度,不跟地形或模型对齐
CLAMP_TO_GROUND地形+3D Tiles贴地、贴模型表面
RELATIVE_TO_GROUND地形+3D Tiles离表面一定高度
CLAMP_TO_TERRAIN地形只贴地,不贴建筑
RELATIVE_TO_TERRAIN地形离地形表面一定高度
CLAMP_TO_3D_TILE3D Tiles贴建筑模型表面
RELATIVE_TO_3D_TILE3D Tiles离模型表面一定高度