经纬志
首页 / Cesium / API 文档

Cesium3DTileStyle

先看结论

3D Tiles 要素的样式规则:用表达式按属性值决定颜色、显隐、点大小和标签偏移。 不重写数据,只改显示方式。

最后验证 2026-11-03 · CesiumJS 1.121 · 更新 2026-10-28 · 引用本文
new Cesium.Cesium3DTileStyle(style)

构造参数

参数类型说明
styleobject | 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)。