Изменение свойств SymbolLayer по клику при использовании VectorSource - PullRequest
1 голос
/ 11 июня 2019

Я следовал этому руководству, предоставленному Mapbox, чтобы познакомиться с SymbolLayers и узнать, как управлять их свойствами на карте.

https://blog.mapbox.com/a-guide-to-the-android-symbollayer-api-5daac7b66f2c

Ключевой шаг, который у меня естьпроблемы с шагом 5, где они обновляют свойство iconSize onMapClick.После того, как они добавили свойство к выбранному Feature, руководство говорит, что нужно вызвать source.setGeoJson(featureCollection); для сброса источника слоя.

В проекте, с которым я работаю, в качестве объекта используется VectorSource.источник данных для SampleLayer, а не GeoJsonSource, как в примере.Проблема в том, что VectorSource не предоставляет метод, подобный setGeoJson, поэтому я не могу сбросить источник слоя после изменения свойства.

Что я могу сделать, чтобы обойти это, не имеяизменить все наши исходные данные?

for (Feature feature : featureCollection.getFeatures() {
  if (feature.getStringProperty("title").equals(selectedFeature.getStringProperty("title"))) {
    feature.getProperties().addProperty("selected", true);  
  }
}

source.setGeoJson(featureCollection);

Полный источник этого примера можно найти здесь: https://github.com/mapbox/mapbox-android-demo/blob/286f33d848c9fea48de908b144682081961b986b/MapboxAndroidDemo/src/main/java/com/mapbox/mapboxandroiddemo/labs/SymbolLayerMapillaryActivity.java

...