首页 / Cesium / API 文档
Cesium3DTileStyle
先看结论
3D Tiles 要素的样式规则:用表达式按属性值决定颜色、显隐、点大小和标签偏移。 不重写数据,只改显示方式。
new Cesium.Cesium3DTileStyle(style)
构造参数
| 参数 | 类型 | 说明 |
|---|---|---|
style | object | string | Promise | 样式定义;对象是各属性的表达式,字符串是 Cesium 官方 JSON 样式,也可以是加载样式的 Promise |
样式属性
| 属性 | 说明 |
|---|---|
show | 布尔表达式,false 的要素直接不绘制 |
color | 颜色表达式,支持 color()、mix()、条件与 regExp() |
pointSize | 点云点的像素大小 |
pointOutlineColor / pointOutlineWidth | 点云描边颜色与宽度 |
labelText / labelColor | 要素标签文本与颜色 |
labelFont / labelSize | 标签字体与像素大小 |
labelOffset | 标签偏移,vec2 或字符串 |
meta | 元数据对象,供条件表达式引用 |
常用方法
| 方法 | 返回 | 说明 |
|---|---|---|
getShowExpression() 等 | StyleExpression | 取出各属性的表达式对象 |
setShow(expression) 等 | — | 替换属性表达式,立即生效 |
clone() | Cesium3DTileStyle | 深拷贝一份 |
示例
// 按楼层高度分级配色,并隐藏无数据的要素
var style = new Cesium.Cesium3DTileStyle({
show: '${Height} >= 0',
color: {
conditions: [
['${Height} >= 100', 'color("#e05b4d")'],
['${Height} >= 50', 'color("#e8b04b")'],
['${Height} >= 20', 'color("#4aa3ff")'],
['true', 'color("#556677")']
]
},
pointSize: 4
});
// 替换 tileset 的样式;之前加载的瓦片会按新规则重绘
tileset.style = style;
// 或直接给字符串:tileset.style = '{ "color": "color(\\"#ff0000\\")" }';
注意事项
- 表达式里的属性名用
${}包住,字符串值要加引号,如${name} === "A";属性不存在时求值为undefined,比较需处理。 - 改
tileset.style会重绘整棵瓦片树,数据量大的模型上建议用styleableProperties(3D Tiles 1.1)只改部分属性。 - 点云默认不画点大小相关的效果时开销更低;
pointSize表达式对每个点都求值。 - 样式作用于要素(Feature)级别,不是瓦片级别;
colorBlendMode影响的是样式色与原纹理色的混合方式。
经纬志(2026)。《Cesium3DTileStyle》。https://www.jingweizhi.com/cesium/api/cesium3d-tile-style.html(访问日期 2026-11-03)。