Cesium3DTileStyle
是 CesiumJS 中用于修改 3D Tiles 样式的 API。
类型 | 参数 | 描述 |
---|---|---|
constructor |
options: Object = undefined |
创建一个 Cesium3DTileStyle 实例,接收可选的 options 参数进行初始化。 |
构造函数支持以下选项:
字段 | 类型 | 默认值 | 描述 |
---|---|---|---|
color |
`Color | string | function` |
show |
`boolean | function` | true |
pointSize |
`number | function` | 1.0 |
labelText |
`string | function` | undefi |
labelFillColor |
`Color | string | function` |
labelStrokeColor |
`Color | string | function` |
labelOutlineWidth |
`number | function` | 1.0 |
labelStyle |
`LabelStyle | function` | none |
labelShow |
boolean |
true |
控制标签是否可见。 |
distanceDisplayCondition |
DistanceDisplayCondition |
控制距离瓦片显示的距离范围。 | |
colorBlendMode |
ColorBlendMode |
设置颜色混合模式,当 3D 瓦片和覆盖瓦片的混合区域重叠时使用。 | |
colorBlendAmount |
`number | function` | 0.5 |
colorBlendDestination |
ColorBlendDestination |
指定颜色混合必须应用到的瓦片类型。 | |
colorBlendSource |
ColorBlendSource |
指定颜色混合必须应用到的瓦片类型。 | |
pointOutlineWidth |
`number | function` | 0.0 |
shadows |
ShadowMode |
DISABLE |
决定是否启用瓦片的阴影。 |
showOutline |
boolean |
false |
控制是否显示要素的轮廓。 |
outlineColor |
`Color | string | function` |
outlineWidth |
`number | function` | 1.0 |
style |
`StyleExpression | function` | |
meta |
object |
{} |
与样式对应的元数据对象。这些元数据可以通过 3D 瓦片实例 content 属性的 setProperty 方法进行修改。 |
classificationType |
ClassificationType |
undefined |
指示如何控制分类瓦片的深度测试。 |
销毁此 Cesium3DTileStyle
实例以释放其资源。
返回当前 Cesium3DTileStyle
实例的克隆副本。
确定 Cesium3DTileStyle
实例是否准备就绪。
计算当前实例与另一个 Cesium3DTileStyle
实例之间的相等性。两个实例由其配置参数比较。
创建一个新的 Cesium3DTileStyle
实例,其中颜色值由 color
参数指定。
创建一个新的 Cesium3DTileStyle
实例,其中 style
参数指定了 3D 瓦片的自定义样式。
Cesium3DTileStyle
支持使用部分 Cesium Expression
语法来定义基于属性值的样式。
以下列表包含所有支持的表达式运算符和函数。表格中列出的参数是每个函数使用的类型;返回值的类型取决于函数。所有颜色参数可以是 具有 redGreenBlueAlpha
属性的 JavaScript 对象,RGBA 数组或 CSS 颜色字符串。
提供的表格还提供每个表达式类型的示例。
运算符 | 描述 | 例子 |
---|---|---|
== |
相等 | attributes.color == "red" |
!= |
不相等 | attributes.id != 0 |
<= |
小于等于 | attributes.population <= 100000 |
< |
小于 | attributes.population < 100000 |
>= |
大于等于 | attributes.population >= 100000 |
> |
大于 | attributes.population > 100000 |
+ |
加法 | attributes.population + 1000000 |
- |
减法 | attributes.height - 500 |
* |
乘法 | attributes.scalingFactor * 2.0 |
/ |
除法 | attributes.length / 100.0 |
% |
取余数 | attributes.id % 2 == 0 |
() |
用于分组表达式的括号 | (attributes.color == "red") && (attributes.id >= 100) |
, |
用于分隔参数的逗号 | color("red", 0.5) |
? |
用于三元条件运算符 | attributes.id > 0 ? 5.0 : 1.0 |
: |
用于三元条件运算符 | attributes.id > 0 ? "yes" : "no" |
` | ` | |
&& |
用于逻辑和运算符 | (attributes.population > 100000) && (attributes.color != "blue") |
! |
用于逻辑非运算符 | !(attributes.name == "Example City") |
rgb |
基于标准 0-255 RGB 创建颜色。 | rgb(255,0,0) |
rgba |
基于标准 0-255 RGBA 创建颜色。 | rgba(255,0,0,0.5) |
hsv |
基于标准 Hue-Saturation-Value 颜色模型创建颜色。 | hsv(0,1.0,1.0) |
alpha |
重新设置 RGBA 颜色的α值。 | alpha(color("red", 0.5), 1.0) |
color |
创建颜色。 | color("red") |
getColor |
获取颜色值。 | getColor("color") |
labels |
在标签中设置文本属性。 | labels(text("Name: "),getText("name")) |
text |
创建一个可以在标签或 HTML 上下文中显示的文本基元。 | text("Name: ") |
getText |
从属性值中提取文本。 | getText("name") |
请注意,在 3D Tiles 中使用此类表达式可能很慢,并且可能导致性能下降。建议只在需要时使用表达式。