Mapbox Style Specification—Feature data、Lookup、Decision

Feature data

feature-state

从当前要素状态中获取属性值,如果请求属性不在要素的属性状态中,则返回null。一个要素的状态不是Geojson或者矢量瓦片数据的一部分,而是以编程的方式在每个要素中设置。注意feature-state仅仅能被使用在paint属性支持data-driven样式中。

["feature-state", string]: value

geometry-type

获取要素的几何类型:点、多点、线、多线、面、多面

["geometry-type"]: string

id

获取要素的id,如果有id的话

["id"]: value

properties

获取要素属性对象,注意在有些情况下,直接使用 ["get", "property_name"] 更有效率。

["properties"]: object

Lookup

at

从数组中取回一项

["at", number, array]: ItemType

get

从当前要素的属性中取回一个合适的值,如果提供了其他参数,也可以从其中获取属性值,如果请求的属性没有的话,返回null。

["get", string]: value
["get", string, object]: value

has

用于测试一个要素属性中是否有某一个属性,如果有第二个参数,就从第二个参数中去取。

["has", string]: boolean
["has", string, object]: boolean

length

获取一个数组或字符串的长度

["length", string | array | value]: number

Decision

本章节的表达式是用来在你的样式中添加逻辑判断条件,例如case表达式提供基础的if then else逻辑,match表达式允许你从一个输入表达式的值来匹配输出表达式的值。

!

逻辑否,输入为ture时返回false,输入为false时返回true

["!", boolean]: boolean

!=

如果不等于返回true,否则返回false。比较严格限制类型:运行时不同类型通常被认为不相等。当在解析时发现类型不同时,会报错。可以接收一个collator参数来控制字符串比较规则。

["!=", value, value]: boolean
["!=", value, value, collator]: boolean

<

如果第一个值小于第二个返回true,否则返回false。参数要求两个都为数值或者字符串。如果在运算期间发现不是字符串或数值,就报错。可以接收一个collator参数来控制字符串比较规则。

["<", value, value]: boolean
["<", value, value, collator]: boolean

<=、==、>、>=都同上类似,不细说了。

all

如果都为true,则返回true,否则返回false。计算的时候会按顺序计算,一旦发现计算值为false,则返回false,且后面不在计算。

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

any

如果有一个为true,返回true,否则返回false。同上,一旦发现计算值为true,返回true,后面不再计算。

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

case

类似编译语言中switch case结构,一旦满足case的条件,返回此case的值。

["case",
    condition: boolean, output: OutputType, condition: boolean, output: OutputType, ...,
    default: OutputType
]: OutputType

coalesce

连接各个表达式,直到获取到第一个非空值为止,返回这个值。

["coalesce", OutputType, OutputType, ...]: OutputType

match

选择输入值与标签值相匹配的的输出值,如果匹配不到,返回默认值。输入可以是任何一个表达式(e.g. ["get", "building_type"])。每个标签必须是一个单独合法的值或者合法的数列(e.g. "a" or ["c", "b"])。这些值必须全是字符串或者数值,在同一个表达式中1和“1”不能同时作为标签,如果输入值不匹配任何一个标签值,结果返回默认值

["match",
    input: InputType (number or string),
    label_1: InputType | [InputType, InputType, ...], output_1: OutputType,
    label_n: InputType | [InputType, InputType, ...], output_n: OutputType, ...,
    default: OutputType
]: OutputType

你可能感兴趣的:(JavaScript,mapbox)