首页 / Cesium / 使用示例
倾斜摄影的分类着色
同一片建筑,按分类字段换一套颜色,就变成了专题图。示例把分类值换成了行列序号,取色与图例的逻辑不变。
源码与运行效果
这个示例在做什么
每个体块按「住宅 / 商业 / 绿地」三类取色,颜色只由行列序号决定,因此刷新后分类结果稳定。 分类值在真实数据里来自 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')。这里没有真实数据集,
于是用行列序号模拟分类字段,查表上色的流程与真实项目一致。