# 表达式参考
在配置中,对于颜色、大小、透明度都是可以通过表达式,根据数据中的字段灵活地配置相应的风格。
# 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
2
3
4
5
6
7
表达式示例-1
["match",
"value",
["str-1", 100],
["str-2", 200],
300
]
2
3
4
5
6
表达式示例-2
["match",
"value",
[["str-1-1", "str-1-2"], 100],
[["str-2-1", "str-2-2"], 200],
300
]
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
2
3
4
5
6
7
表达式示例
["step",
"value",
[10, 100],
[20, 200],
[30, 300],
400
]
2
3
4
5
6
7
# zoom表达式
返回地图当前的zoom层级,一般情况下为 1~20之间。
["zoom"]
# get-join表达式
获取与用户数据join的数据对象的指定字段。如果数据集合中存在找不到数据的情况,可以给定一个默认值。
["get-join", "field-name"]
["get-join", "field-name", default_value]
# 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
2
3
4
5
6
# all表达式
只有输入的值里有所有的值为true,则表达式返回true,只要存在一个是false时,就返回false。
["all", boolean, boolean]: boolean
["all", boolean, boolean, ...]: boolean
# any表达式
只要输入的值里有任何一个为true,则表达式返回true,只有都是false时,才返回false。
["any", boolean, boolean]: boolean
["any", boolean, boolean, ...]: boolean
# in表达式
检测指定的值是否在一个数组内,或者都是字符串时,是否是其中的字串。
["in",
keyword, // 类型可以是:boolean, string, 或者 number
input // 类型可以是: array or string
]: boolean
2
3
4
示例:
// 判断 township字段的值是否是"张江镇", "唐镇"其中之一
["in", "township", "张江镇", "唐镇"]
2
# <表达式
只有当value_1小于value_2 时,表达式返回true,否则返回false,输入的value值只能是数组或者字符串类型。
["<", value_1, value_2]: boolean
# <=表达式
只有当value_1小于等于value_2 时,表达式返回true,否则返回false,输入的value值只能是数组或者字符串类型。
["<=", value_1, value_2]: boolean
# >表达式
只有当value_1大于value_2 时,表达式返回true,否则返回false,输入的value值只能是数组或者字符串类型。
[">", value_1, value_2]: boolean
# >=表达式
只有当value_1大于等于value_2 时,表达式返回true,否则返回false,输入的value值只能是数组或者字符串类型。
[">=", value_1, value_2]: boolean
# ==表达式
只有当value_1等于value_2 时,表达式返回true,否则返回false,输入的value值只能是数组或者字符串类型。
["==", value_1, value_2]: boolean
# !=表达式
只有当value_1不等于value_2 时,表达式返回true,否则返回false,输入的value值只能是数组或者字符串类型。
["!=", value_1, value_2]: boolean
# concat表达式
把所有字符串类型的值连接在一起。
语法
["concat", value_1, value_2, ...]: string
← 样式规格