首页 > 解决方案 > SymbolLayer 中的数据驱动图标大小

问题描述

我正在关注https://blog.mapbox.com/a-guide-to-the-android-symbollayer-api-5daac7b66f2c的博客文章,向地图添加不同的符号。

根据特征值拥有不同的图标已经在起作用,但是基于“选定”属性更改图标大小证明并不容易。

似乎他们使用较新的 SDK 更改/删除了一些方法/类,我无法根据功能的属性值设置图标大小。

mapboxMap.addLayer(myLayer)
  .withProperties(
    PropertyFactory.iconSize(
      Function.property(
        "selected",
        Stops.categorical(
          Stop.stop(true, PropertyFactory.iconSize(1.5f)),
          Stop.stop(false, PropertyFactory.iconSize(1.0f))
        )
      )
    )
  )
);

这就是他们在示例中的做法,但Stops.categorical()不再存在。

我在用着com.mapbox.mapboxsdk:mapbox-android-sdk:7.3.0

标签: androidmapboxmapbox-android

解决方案


对于其他正在寻找答案的人,这就是我解决它的方法

iconSize(
    match(get("selected"), // property selected is a number
        literal(1),        // default value
        stop(0, 0.75),     // if not selected set icon size to 0.75 of original value
        stop(1, 1)         // if selected set it to original size
    )
)

推荐阅读