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

按属性给要素换样式

同一批建筑,换一套配色规则就变成另一种专题图。示例把规则写成函数,循环切换三套方案。

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

这个示例在做什么

24 栋建筑按高度分档,每 2.5 秒换一套配色:先按高度三分档,再按体量两分档,最后回到单色。 三套样式都写成了函数,输入高度、输出颜色,切换时只换函数。

真实 3D Tiles 里对应的是 Cesium3DTileStyle,样式条件写成表达式: color: "(${height} > 55) ? color('#ff5c5c') : color('#4d7cff')"。 表达式的含义与这里的函数完全等价,只是换成了字符串形式,便于外部配置。

关键接口

接口作用
Cesium3DTileStyle用表达式描述颜色、显隐、缩放
tileset.style整份数据统一样式,修改后会重新求值
ColorMaterialProperty实体材质,可随时替换
property.getValue()样式表达式里读要素属性的等价操作

可以直接改的地方

位置改什么效果
styles 数组增加第四套函数多一种配色方案
b.h > 55改阈值分档边界变化
setTimeout(apply, 2500)改成 1000切换更快
材质加 withAlpha(0.7)半透明能看穿前后排

替代说明:官方示例用 Cesium3DTileStyle 对 ion 数据集按属性着色。 这里把样式表达式换成 JavaScript 函数,分档逻辑一一对应; 真实项目里把同一套规则写成表达式字符串即可。