Проблема выражений Android в Mapbox - PullRequest
0 голосов
/ 21 июня 2019

Я новичок в Mapbox и хочу изменить цвет выбранной функции. Я реализую это на примере Mapbox с добавлением нового поля «SELECTED» следующим образом:

//For deselect all
 for (Feature feature : featureCollection.features()) {
            feature.properties().addProperty("SELECTED", false);
        }

Feature feature = featureCollection.features().get(index);
feature.properties().addProperty("SELECTED", true);

Теперь существует специальное поле "SELETCED". Но я не могу как сказать: если это «правда», используйте этот цвет для fillExtrusionColor, иначе используйте другой цвет.

style.addLayer(new FillExtrusionLayer(
                    activeLayerId, sourceId).withProperties(
                    fillExtrusionHeight(20f),
                    fillExtrusionColor(get("FILL_COLOR")),
                    fillExtrusionOpacity(0.7f)
            ));

Я гуглил и обнаружил, что должен использовать выражения для этой цели, но не смог выяснить, как!

1 Ответ

0 голосов
/ 22 июня 2019

Есть несколько способов сделать то, что вы просите:

fillExtrusionColor(match(get("SELECTED"),
          true, get("FILL_COLOR"), // if true use this color
          false, rgba(0, 0, 255.0f, 1.0f),
          get("FILL_COLOR"))) // default color to use

или:

fillExtrusionColor(switchCase(
  eq(get("SELECTED"), true), get("FILL_COLOR"), // if SELECTED == true use this color
  eq(get("SELECTED"), false), rgba(0, 0, 255.0f, 1.0f),
  get("FILL_COLOR")))) // default value

Подробнее вы можете узнать здесь .

...