MapboxGL Style Expressions提供强大的、灵活的设置style的方法,比如说按照不同的缩放层级设置显示大小、根据图层的属性值的不同设置不同的颜色等等。
表达式可以用于任何layout
、paint
、filter
属性。 表达式使用定义了一个公式,这个公式使用下边定义的操作计算出一个属性值,MapboxGL提供的表达式操作包括:
- 数学运算:用于对数值执行算术和其他运算。
- 逻辑运算:计算出一个布尔值
- 字符串运算
- 数值运算:可以基于源图层数据的属性只进行计算。
- 相机运算
语法
javascript
[expression_name, argument_0, argument_1, ...]
表达式采用类lisp语法,使用一个JSON数组来表示。表达式JSON数组的第一个元素是运算符的名称,例如"*"
或"case"
。表达式JSON数组中的其他元素是表达式计算的参数。每一个参数或者是一个字面量值(一个字符串、数字、布尔值,或者null),或者是其他的表达式JSON数组。参数的个数取决于运算符。
下边这个表达式例子表示: (π * 32),表达式JSON数组中第一个元素*
,表示是一个相乘的运算,第二个元素pi
代表这个乘运算的第一个参数,第三个参数 ["^", 3, 2]]
用一个表达式来表示这个相乘运算的第二个参数,这个表达式返回32。
json
["*", ["pi"], ["^", 3, 2]]