SymbolLayer 中数据驱动的图标大小

Data driven icon size in SymbolLayer

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

根据特征值使用不同的图标已经可行,但事实证明,根据 "selected" 属性 更改图标大小并不那么容易。

似乎他们 changed/removed 一些 methods/classes 使用较新的 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

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

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
    )
)