初学mapbox 的小伙伴们一定会被表达式给弄的晕头转向的。明明条件判断或者回调函数能解决的问题。mapbox里非得让你用表达式。这确实比较ex。
不过我们既然遇到了,也不要怕,这篇文章我就带着大家一点一点的搞明白这个所谓的表达式。
首先从宏观上讲,要知道为什么使用表达式。在mapbox中。通常是为了把一些条件判断if/else简化,才选用了表达式的方式。一个表达式通常就一行代码。短短几十个字符就可以完成条件的自动匹配。另外还有一个内部的原因是因为mapbox为了保持js端和移动端sdk代码风格的统一,也就是说表达式这玩意一开始并不是用在js上的。
另外还要明确一点,表达式常用于图层对象的paint、layout、filter属性中,除此之外,在给这些属性赋值的过程中,也可以使用表达式,另外在其余的图层参数或者source的某些参数中,也可以使用一部分表达式。有的人会说好像setFilter的时候也可以用表达式,没错,但是setFilter不也是设置filter吗?因此表达式仅用于图层的某几个属性中,其余的地方不能用。
mapbox的表达式一共分几个类型。分别是数学计算、逻辑判断、数据操作、相机操作。其中相机表达式了解就好,用处不大,数据操作和逻辑表达是重中之重,需要掌握。
举个例子来说,比如你所在的行政区需要根据某个指标进行行政区颜色的附着。类似与下面这样
你在编写程序的时候肯定会想到通过if/else来判断这个指标。比如"