Mapbox: Проблема с визуализацией символа

До сих пор я следовал этому примеру https://docs.mapbox.com/android/plugins/examples/symbol-listener/ для добавления Symbol в определенное место с SymbolManager. Однако изображение, используемое для символа, не отображается на карте, хотя шаги, которые вы видите во фрагменте кода ниже, такие же:

symbolManager = new SymbolManager(mapView, mMapboxMap, style);

symbolManager.setIconAllowOverlap(true);    
symbolManager.setIconIgnorePlacement(true); 

SymbolOptions symbolOptions = new SymbolOptions()
                    .withIconImage(String.valueOf(R.drawable.ic_map_start_flag))
                    .withIconSize(2.0f)
                    .withLatLng(newLatLngs.get(0));

startSymbol = symbolManager.create(symbolOptions); 

Drawable - это vector asset, который без проблем визуализирует действия. После этого у меня есть еще один фрагмент кода, который отлично работает на карте. В журнале также нет никаких сбоев.

Есть идеи, почему его нет на карте?


person H.Karatsanov    schedule 16.05.2020    source источник


Ответы (1)


Я решил это. Дело в том, что Mapbox не работает напрямую с ресурсами внутри папки drawable. По этой причине нам нужно создать новый объект Drawable из нашего XML-файла, представляющего значок, и после этого добавить этот объект Drawable к стилю, используемому методом onStyleLoaded(@NonNull Style style), например так:

Drawable myIcon = getResources().getDrawable( R.drawable.ic_map_start_flag);
style.addImage(IMAGE_START_FLAG, myIcon);
person H.Karatsanov    schedule 17.05.2020