首页 / Cesium / 使用示例
整体调整模型高度
不同来源的数据高程基准常常对不上,统一抬升是第一步。示例让一排建筑整体上下浮动,看清偏移量的作用。
源码与运行效果
这个示例在做什么
一排建筑整体上下浮动,模拟 3D Tiles 的「高度调整」:把整套数据统一抬升或下沉,
用来对齐不同来源的高程基准。这里用 CallbackProperty 让位置每帧重算,
高度偏移量由正弦函数给出。
真实数据里对应的接口是 tileset.modelMatrix:左乘一个纯平移矩阵,
整份 tileset 就整体位移,不需要逐个要素改坐标。示例用实体盒体演示同一个效果,
每个盒体的高度都加上同一个 offset。
关键接口
| 接口 | 作用 |
|---|---|
tileset.modelMatrix | 整份 3D Tiles 统一平移、旋转、缩放 |
CallbackProperty | 实体位置每帧求值,适合做动态偏移 |
Matrix4.fromTranslation | 构造纯平移矩阵,配合 multiply 左乘 |
scene.postRender | 驱动偏移量变化 |
可以直接改的地方
| 位置 | 改什么 | 效果 |
|---|---|---|
Math.sin(...) * 40 | 改系数 40 | 上下浮动的幅度 |
offset = 60 | 改成固定值 | 整体抬高不再浮动 |
h / 2 + offset | 只给部分盒体加偏移 | 对比「已对齐 / 未对齐」两组数据 |
0.001(时间系数) | 改大 | 浮动更快 |
替代说明:官方示例加载 ion 上的 3D Tiles 数据集后调用
tileset.adjustHeight 一类的高度校正。这里用实体盒体复现整体升降的视觉,
真实数据换成对 modelMatrix 左乘平移矩阵即可。