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

倾斜摄影的分类着色

同一片建筑,按分类字段换一套颜色,就变成了专题图。示例把分类值换成了行列序号,取色与图例的逻辑不变。

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

这个示例在做什么

每个体块按「住宅 / 商业 / 绿地」三类取色,颜色只由行列序号决定,因此刷新后分类结果稳定。 分类值在真实数据里来自 3D Tiles 的批表或元数据,取到后同样是查表上色。

体块颜色用 Color.fromCssColorString 直接指定,再配深色描边把相邻建筑分开。 右下角的图例是普通 HTML,只要能拿到分类字段,图例与配色就能一一对应。

关键接口

接口作用
Cesium3DTileStyle真实数据里按 ${class} 之类的属性写条件表达式上色
Color.fromCssColorString把设计稿上的十六进制色值转成 Color
box.outline相邻体块同色时靠描边区分轮廓
boxes[e.id]要素被点击时从批表或元数据读取分类

可以直接改的地方

位置改什么效果
legend 对象增删分类或换色值图例与建筑配色同步变化
keys[(r * 3 + c) % 3]改成按高度分类分类规则换成体量分档
withAlpha给颜色加透明度分类叠加时能看穿后排
7×7 循环改成 10×10类别分布更密

替代说明:官方示例的类别存放在 ion 数据集的元数据里,读取用 feature.getProperty('classification')。这里没有真实数据集, 于是用行列序号模拟分类字段,查表上色的流程与真实项目一致。