Skip to content

MapboxGL Style Expressions提供强大的、灵活的设置style的方法,比如说按照不同的缩放层级设置显示大小、根据图层的属性值的不同设置不同的颜色等等。

表达式可以用于任何layoutpaintfilter属性。 表达式使用定义了一个公式,这个公式使用下边定义的操作计算出一个属性值,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]]