Releases: mapbox/mapbox-maps-android
Releases · mapbox/mapbox-maps-android
Release list
v11.26.0-rc.1
Features ✨ and improvements 🏁
- [compose] Introduce experimental
IndoorSelectorcomposable function available insideMapboxMap, displaying a scrollable floor-selection widget that appears automatically when an indoor building is in view. ExposesIndoorSelectorStatefor programmatic access to the current floor list and selected floor, and anonFloorClickedcallback for reacting to user selections. - [compose] Add
IndoorSelectorControlheadless composable insideMapIndoorSelectorScope: attaches the indoor plugin to anIndoorSelectorStatewithout rendering any UI, enabling custom floor-selector implementations. - [compose] Add
rotateBy,moveBy,pitchBy, andscaleBymethods toMapViewportStatefor incremental camera animations. - [compose] Add
rememberStyleImage(imageId, image9Patch: NinePatchImage)andremember9PatchStyleImage(imageId, bitmap: Bitmap)overloads for nine-patch images. - Introduce new experimental
ViewAnnotationOptions.enableSymbolLayerCollisionoption which allows view annotations to hide underlying map symbols to avoid visual clutter.
By default, the full bounding box of the view annotation is used for collision detection. If your annotation has a non-rectangular shape, it is highly recommended to mark the specific subviews that should participate via the new experimentalView.mbxCollisionBoxflag. - Support drawing view annotation collision boxes when
MapView.debugOptionsis set toCOLLISION. - Add
TileStoreoption to configure the ambient cache quota, allowing control over how much disk space is used for ambient cached tile data.
Bug fixes 🐞
- [compose] Pass the identifier as an input to
rememberSaveableinremember*SourceState,remember*LightState, andrememberTerrainStatefunctions so that changing the identifier correctly recreates the saved state. - Fix labels missing on some road segments due to multilinestring geometry parts being dropped during label merging.
- Fix View Annotations sometimes failing to appear on short line segments due to collision detection over-rejection.
- Fix worldview filter not applying correctly after being changed at runtime.
- Fix zoom interpolation expressions not working correctly when symbol layer appearances define different zoom stops for the same property.
- Fix icon cross-fade animation not rendering correctly for icons redefined across appearances.
- Fix symbols with elevation or z-offset not displaying when the map is both rotated and pitched.
- Fix inaccurate coordinate conversion when querying geographic coordinates over terrain.
- Fix
SecurityExceptioncrash on Android 12 (API 31–32) when the Maps SDK registers location broadcast receivers. - Fix a potential crash caused by a use-after-free when evicting decompressed tile data from memory.
- Internal fixes and performance improvements.
Dependencies
- Update gl-native to v11.26.0-rc.1, common to v24.26.0-rc.1.
v11.21.8
Features ✨ and improvements 🏁
- Reduce per-frame rendering overhead when style properties are updated frequently.
Bug fixes 🐞
- Fix a crash caused by dereferencing a null index buffer when drawing symbols.
- Internal fixes and performance improvements.
Dependencies
v11.26.0-alpha.1
Features ✨ and improvements 🏁
- [compose] Introduce experimental
IndoorSelectorcomposable function available insideMapboxMap, displaying a scrollable floor-selection widget that appears automatically when an indoor building is in view. ExposesIndoorSelectorStatefor programmatic access to the current floor list and selected floor, and anonFloorClickedcallback for reacting to user selections. - [compose] Add
IndoorSelectorControlheadless composable insideMapIndoorSelectorScope: attaches the indoor plugin to anIndoorSelectorStatewithout rendering any UI, enabling custom floor-selector implementations. - [compose] Add
rotateBy,moveBy,pitchBy, andscaleBymethods toMapViewportStatefor incremental camera animations. - [compose] Add
rememberStyleImage(imageId, image9Patch: NinePatchImage)andremember9PatchStyleImage(imageId, bitmap: Bitmap)overloads for nine-patch images. - Introduce new experimental
ViewAnnotationOptions.enableSymbolLayerCollisionoption which allows view annotations to hide underlying map symbols to avoid visual clutter.
By default, the full bounding box of the view annotation is used for collision detection. If your annotation has a non-rectangular shape, it is highly recommended to mark the specific subviews that should participate via the new experimentalView.mbxCollisionBoxflag. - Support drawing view annotation collision boxes when
MapView.debugOptionsis set toCOLLISION. - Internal fixes and performance improvements.
Dependencies
- Update gl-native to v11.26.0-alpha.1, common to v24.26.0-alpha.1.
v11.25.0
Breaking changes ⚠️
MapView.setMaximumFpsandMapSurface.setMaximumFpsare now annotated@MainThread. Callers must invoke them from the main thread; off-main callers will see a lint warning.
Features ✨ and improvements 🏁
- [compose] Add Standard
IndoorLabelsfeatureset and indoor configuration options (showIndoor,showIndoorLabels,colorIndoorLabelHighlight,colorIndoorLabelSelect) for the Mapbox Standard style. - Add
useNativeFlingDecelerationoption toGesturesPluginthat usesOverScrollerfor physics-based fling deceleration instead of the legacyeaseToanimation, providing a more natural fling experience. - Throttle
MapboxMappost destroyed warning logs. - Expose
verticalFovinCameraOptions, allowing a custom vertical field of view to be set insetCamera,easeTo, andflyTo. - Allow using color string literals in
interpolateexpressions, including when set on style config at runtime. - Support using
line-progressinline-emissive-strength. - Add support for zoom-and-feature-dependent appearance conditions.
- Add client-side SD/HD road and traffic conflation, hiding redundant roads based on functional road class coverage with stencil-masked transitions and configurable opacity fade.
- Add animated cross-fade transitions for boolean style config options (e.g. switching HD roads on/off).
- Add an option to disallow expensive network requests in
loadStylePack.
Bug fixes 🐞
- Fix a
ConcurrentModificationExceptioncrash that could occur when a plugin was added or removed duringMapView.onDestroy. - Fix frame pacing breaking when the panel switches refresh-rate modes mid-session (VRR or per-UID
frameRateOverride).FpsManagernow updates itsscreenRefreshRatevia aDisplayManager.DisplayListenerinstead of only sampling once atonStart. - [maps-sdk] Fix Vulkan rendering being permanently disabled when the Android surface arrived before the native map was set. The renderer now defers setup and retries via
onMapSet()once the map is available. - Fix a crash that could occur while iterating map interactions when a callback modifies interaction state.
- Fix a use-after-free crash in the map caused by asynchronous tasks accessing a partially destroyed map instance.
- Fix a crash caused by dereferencing a null index buffer when drawing symbols.
- Fix a crash when an overriding terrain source was merged with another source from the same root style.
- Fix missing letters in the middle of text labels placed along lines elevated by terrain.
- Fix aliasing artifacts on lines with borders.
- Fix step expression evaluation when using uniform buffer objects.
- Improve symbol appearances performance for Vulkan backend.
- Fix rare process crashes during HTTP downloads (failure to create a temporary file, and an uncaught error while writing the response).
- Fix a crash sometimes occurring when using a custom raster source.
- Internal fixes and performance improvements.
Dependencies
v11.25.0-rc.2
Bug fixes 🐞
- Internal fixes and performance improvements.
Dependencies
- Update gl-native to v11.25.0-rc.2, common to v24.25.0-rc.2.
v11.25.0-rc.1
Breaking changes ⚠️
MapView.setMaximumFpsandMapSurface.setMaximumFpsare now annotated@MainThread. Callers must invoke them from the main thread; off-main callers will see a lint warning.
Features ✨ and improvements 🏁
- [compose] Add Standard
IndoorLabelsfeatureset and indoor configuration options (showIndoor,showIndoorLabels,colorIndoorLabelHighlight,colorIndoorLabelSelect) for the Mapbox Standard style. - Add
useNativeFlingDecelerationoption toGesturesPluginthat usesOverScrollerfor physics-based fling deceleration instead of the legacyeaseToanimation, providing a more natural fling experience. - Throttle
MapboxMappost destroyed warning logs. - Expose
verticalFovinCameraOptions, allowing a custom vertical field of view to be set insetCamera,easeTo, andflyTo. - Allow using color string literals in
interpolateexpressions, including when set on style config at runtime. - Support using
line-progressinline-emissive-strength. - Add support for zoom-and-feature-dependent appearance conditions.
- Add client-side SD/HD road and traffic conflation, hiding redundant roads based on functional road class coverage with stencil-masked transitions and configurable opacity fade.
- Add animated cross-fade transitions for boolean style config options (e.g. switching HD roads on/off).
- Add an option to disallow expensive network requests in
loadStylePack.
Bug fixes 🐞
- Fix a
ConcurrentModificationExceptioncrash that could occur when a plugin was added or removed duringMapView.onDestroy. - Fix frame pacing breaking when the panel switches refresh-rate modes mid-session (VRR or per-UID
frameRateOverride).FpsManagernow updates itsscreenRefreshRatevia aDisplayManager.DisplayListenerinstead of only sampling once atonStart. - [maps-sdk] Fix Vulkan rendering being permanently disabled when the Android surface arrived before the native map was set. The renderer now defers setup and retries via
onMapSet()once the map is available. - Fix a crash that could occur while iterating map interactions when a callback modifies interaction state.
- Fix a use-after-free crash in the map caused by asynchronous tasks accessing a partially destroyed map instance.
- Fix a crash caused by dereferencing a null index buffer when drawing symbols.
- Fix a crash when an overriding terrain source was merged with another source from the same root style.
- Fix missing letters in the middle of text labels placed along lines elevated by terrain.
- Fix aliasing artifacts on lines with borders.
- Fix step expression evaluation when using uniform buffer objects.
- Improve symbol appearances performance for Vulkan backend.
- Fix rare process crashes during HTTP downloads (failure to create a temporary file, and an uncaught error while writing the response).
Dependencies
- Update gl-native to v11.25.0-rc.1, common to v24.25.0-rc.1.