经纬志
首页 / Cesium / 使用示例

浏览模型节点

一个模型内部往往由很多节点组成。示例用带命名的三层楼板模型,按名字找回节点并逐层高亮, 这是做构件查询、楼层切换的基础。

CesiumJS 1.121 · 更新 2026-10-28
源码与运行效果
运行效果

这个示例在做什么

GLB 的 nodes 数组里写了三个节点,名字分别是 level-1、level-2、level-3,各自绑定一个楼板网格。 模型加载完成后,model.getNode('level-2') 就能取到这个节点对象; 名字写错时返回 undefined,示例里据此显示「未找到」。

高亮盒子是一个普通实体,位置随当前楼层的高度改变。 真实项目里节点往往自带变换,这时读 node.matrix 与模型的 modelMatrix 相乘,就能得到节点的世界坐标,比这里的「按楼层高度估算」更准确。

关键接口

接口作用
model.getNode(name)按节点名取 ModelNode,名称来自 glTF 的 nodes[].name
node.matrix节点相对父节点的局部变换矩阵
ConstantPositionProperty运行时替换实体位置,避免重建实体
model.modelMatrix模型的整体变换,与节点矩阵配合可算出世界坐标

可以直接改的地方

位置改什么效果
floorsGlb(16, 4, 12, 3, …)楼层数改成 6节点数量与高亮循环一起变多
names 数组写一个不存在的名字提示「未找到」,验证名称匹配逻辑
setTimeout(tick, 1600)改成 600切换更快
#4d9bff换成其他颜色高亮色

替代说明:官方示例使用带完整节点层级的 ion 模型。这里用三节点 GLB 复现节点查询的过程, getNode 的用法与官方一致;若节点上有动画,可继续用 node.matrix 驱动。