Я в основном использую mapbox в моем проекте, но в одном случае мне нужно отобразить карту в программе recyclerView. Для этого я подумал об использовании MapSnapshotter вместо статического Map Api, поскольку у пользователя может не быть подключения.
К сожалению, при выполнении моего тестирования я не могу заставить MapSnapshotter.callback работать должным образом. Иногда изображение загружается / создается, а иногда - нет, и оно кажется случайным.
Mapbox.getInstance(this, MyMapbox.getToken());
mapView.onCreate(savedInstanceState);
mapView.getMapAsync(new OnMapReadyCallback() {
@Override
public void onMapReady(MapboxMap mapboxMap) {
map = mapboxMap;
MapSnapshotter.Options options = new MapSnapshotter.Options(mapView.getMeasuredWidth(),mapView.getMeasuredHeight());
options.withRegion(mapboxMap.getProjection().getVisibleRegion().latLngBounds);
options.withStyle(mapboxMap.getStyleUrl());
MapSnapshotter mapSnapshotter = new MapSnapshotter(getContext(), options);
mapSnapshotter.start(new MapSnapshotter.SnapshotReadyCallback() {
@Override
public void onSnapshotReady(MapSnapshot snapshot) {
Log.i(LOG_TAG, "onSnapshotReady");
Bitmap bitmap = snapshot.getBitmap();
imageview.setImageBitmap(bitmap);
}
}, new MapSnapshotter.ErrorHandler() {
@Override
public void onError(String error) {
Log.i(LOG_TAG, error);
}
});
}
});