# 表达式参考

在配置中,对于颜色、大小、透明度都是可以通过表达式,根据数据中的字段灵活地配置相应的风格。

# match表达式

选择标签值与输入值匹配的输出,如果未找到匹配,则选择默认值。input可以是任何表达式(例如。“building_type”, ["get-join", "building_type"]。每个标签必须是:

单个数值,或者字符串值;或一个数值、字符串数组。它的值必须是所有的字符串或数字(例如:[100, 101]["c", "b"])。如果数组中的任何值匹配可以与input匹配,则输出相应的output

每个标签必须是唯一的,回退值是必填的。如果输入类型与标签类型不匹配,则结果将是回退值。

表达式说明

["match",
input: number,
[label_1, output_1],     // case input == label_1 return output_1
[label_2, output_2], ... // case input == label_2 return output_2
[label_n, output_n],     // case input == label_n return output_n
default_output           // else return default_output
]: OutputType
1
2
3
4
5
6
7

表达式示例-1

["match",
"value",
["str-1", 100],
["str-2", 200],
300
]
1
2
3
4
5
6

表达式示例-2

["match",
"value",
[["str-1-1", "str-1-2"], 100],
[["str-2-1", "str-2-2"], 200],
300
]
1
2
3
4
5
6

# step表达式

通过计算由输入和输出值(“step")定义的分段常数函数,产生离散的、阶梯式的结果。相当于多个if else组成的语句。 ‘input’可以是任何数字表达式(例如,"population"或者 ["get-join", "population"])。stop_input必须是严格升序的数字。

["step",
    input: number,
    [stop_input_1, stop_output_1],     // if (input < stop_input_1) return stop_output_1
    [stop_input_2, stop_output_2], ... // else if (input < stop_input_2) return stop_output_2
    [stop_input_n, stop_output_n],     // else if (input < stop_input_n) return stop_output_n
  	stop_output_others                 // else return stop_output_n
]: OutputType
1
2
3
4
5
6
7

表达式示例

["step",
"value",
[10, 100],
[20, 200],
[30, 300],
400
]
1
2
3
4
5
6
7

# zoom表达式

返回地图当前的zoom层级,一般情况下为 1~20之间。

["zoom"]
1

# get-join表达式

获取与用户数据join的数据对象的指定字段。如果数据集合中存在找不到数据的情况,可以给定一个默认值。

["get-join", "field-name"]
1
["get-join", "field-name", default_value]
1

# case表达式

case表达式相当于 if...else..if...else...if...else 的逻辑。

["case",
[condition_1, output_1],     // case condition_1 return output_1
[condition_2, output_2], ... // case condition_2 return output_2
[condition_n, output_n],     // case condition_n return output_n
default_output               // else return default_output
]: OutputType
1
2
3
4
5
6

# all表达式

只有输入的值里有所有的值为true,则表达式返回true,只要存在一个是false时,就返回false

["all", boolean, boolean]: boolean
1
["all", boolean, boolean, ...]: boolean
1

# any表达式

只要输入的值里有任何一个为true,则表达式返回true,只有都是false时,才返回false

["any", boolean, boolean]: boolean
1
["any", boolean, boolean, ...]: boolean
1

# in表达式

检测指定的值是否在一个数组内,或者都是字符串时,是否是其中的字串。

["in",
keyword, //  类型可以是:boolean, string, 或者 number
input    //  类型可以是: array or string
]: boolean
1
2
3
4

示例:

// 判断 township字段的值是否是"张江镇", "唐镇"其中之一
["in", "township", "张江镇", "唐镇"]
1
2

# <表达式

只有当value_1小于value_2 时,表达式返回true,否则返回false,输入的value值只能是数组或者字符串类型。

["<", value_1, value_2]: boolean
1

# <=表达式

只有当value_1小于等于value_2 时,表达式返回true,否则返回false,输入的value值只能是数组或者字符串类型。

["<=", value_1, value_2]: boolean
1

# >表达式

只有当value_1大于value_2 时,表达式返回true,否则返回false,输入的value值只能是数组或者字符串类型。

[">", value_1, value_2]: boolean
1

# >=表达式

只有当value_1大于等于value_2 时,表达式返回true,否则返回false,输入的value值只能是数组或者字符串类型。

[">=", value_1, value_2]: boolean
1

# ==表达式

只有当value_1等于value_2 时,表达式返回true,否则返回false,输入的value值只能是数组或者字符串类型。

["==", value_1, value_2]: boolean
1

# !=表达式

只有当value_1不等于value_2 时,表达式返回true,否则返回false,输入的value值只能是数组或者字符串类型。

["!=", value_1, value_2]: boolean
1

# concat表达式

把所有字符串类型的值连接在一起。

语法

["concat", value_1, value_2, ...]: string
1
最后更新于: 10/27/2022, 11:05:01 AM