# 表达式参考
在配置中,对于颜色、大小、透明度都是可以通过表达式,根据数据中的字段灵活地配置相应的风格。
# 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
← 样式规格