Mapbox Android MapSnapshotter
в настоящее время не поддерживает захват стиля выполнения, добавленного на карту. Таким образом, даже если бы вы могли настроить менеджер аннотаций (который вы правильно указали, сделать невозможно из-за зависимости от базового MapView
/ MapboxMap
), изображение, извлеченное из snapshot.getBitmap()
, не будет содержать аннотации ,
Похоже, вы заинтересованы в отображении динамических аннотаций c на карте (таких как местоположение пользователя), которые, вероятно, часто изменяются. Таким образом, это предложение, скорее всего, не будет соответствовать вашему варианту использования, но все же стоит упомянуть: вы можете попробовать добавить маркеры к самому стилю карты, используя Mapbox Studio , а затем передать полученный стиль карты в снимок withStyle
параметр.
В качестве альтернативы, вы можете создать экземпляр MapboxMap
объекта вместо MapSnapshotter
, а затем использовать предложенный код в этом сообщении переполнения стека , которое не указано c для Mapbox. Если вы передадите Layout
, содержащий объект вашей карты Mapbox, в метод takeScreenShot
, указанный в ответе на связанный пост, вы сможете сгенерировать Bitmap
, содержащий вашу карту и аннотации, добавленные на указанную карту, с помощью менеджера аннотаций. или другой вид добавленного клиентом слоя карты. Хотя этот подход теряет преимущество генерации моментальных снимков в фоновом потоке устройства, он обеспечивает большую гибкость с точки зрения добавления стиля выполнения.
Тем временем я бы рекомендовал следить за Mapbox. Android MapSnapshotter
документация для любых изменений, чтобы приспособить этот динамический c сценарий использования и, возможно, открыть проблему в mapbox/mapbox-gl-native-android
, чтобы озвучить запрос функции.