Mapbox常用表达式整理(1)

概述

可以将任何layout属性,paint属性或filter的值指定为表达式。Mapbox GL提供的表达式运算符包括:

  • 数学运算符,用于对数值算术和其他运算
  • 逻辑运算符,用于处理布尔值和做出条件判断
  • 字符串运算符
  • 数据运算符,提供对源要素属性的访问
  • 相机运算符,可访问定义当前地图视图的参数

数据表达式

数据表达式允许要素的属性或状态确定其外观。常见的有:gethasid,或feature-state

{
    "circle-color": [
        "rgb",
        // red is higher when feature.properties.temperature is higher
        ["get", "temperature"],
        // green is always zero
        0,
        // blue is higher when feature.properties.temperature is lower
        ["-", 100, ["get", "temperature"]]
    ]
}

相机表达式

使用zoom操作符的任何表达式。这些表达式随着地图的层级缩放,动态的改变图层的外观。

{
    "circle-radius": [
        "interpolate", ["linear"], ["zoom"],
        // zoom is 5 (or less) -> circle radius will be 1px
        5, 1,
        // zoom is 10 (or greater) -> circle radius will be 5px
        10, 5
    ]
}

在相机表达式随时间的动态计算策略上,layout和paint属性有一个重要的区别:

  • 每当缩放级别发生变化时,paint属性相机表达式将重新计算,即使只是轻微变化。例如,当地图在缩放级别4.1和4.6之间移动时,一个paint属性相机表达式将被不断地重新计算。
  • layout属性相机表达式仅在整数缩放级别进行计算。当缩放级别从4.1变到4.6时,它不会被重新计算;只有当它超过5或低于4时,才会重新计算。

组合表达式

单个表达式可以混合使用数据操作符、相机操作符和其他操作符。

{
    "circle-radius": [
        "interpolate", ["linear"], ["zoom"],
        // when zoom is 0, set each feature's circle radius to the value of its "rating" property
        0, ["get", "rating"],
        // when zoom is 10, set each feature's circle radius to four times the value of its "rating" property
        10, ["*", 4, ["get", "rating"]]
    ]
}

类型系统

类型断言操作符:array, boolean, number, 和 string.
类型转换操作符: to-boolean, to-number, to-string, 或者 to-color

  • 2
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值