Skip to content

Releases: mapbox/mapbox-maps-android

v11.26.0-rc.1

v11.26.0-rc.1 Pre-release
Pre-release

Choose a tag to compare

@pengdev pengdev released this 30 Jun 14:15

Features ✨ and improvements 🏁

  • [compose] Introduce experimental IndoorSelector composable function available inside MapboxMap, displaying a scrollable floor-selection widget that appears automatically when an indoor building is in view. Exposes IndoorSelectorState for programmatic access to the current floor list and selected floor, and an onFloorClicked callback for reacting to user selections.
  • [compose] Add IndoorSelectorControl headless composable inside MapIndoorSelectorScope: attaches the indoor plugin to an IndoorSelectorState without rendering any UI, enabling custom floor-selector implementations.
  • [compose] Add rotateBy, moveBy, pitchBy, and scaleBy methods to MapViewportState for incremental camera animations.
  • [compose] Add rememberStyleImage(imageId, image9Patch: NinePatchImage) and remember9PatchStyleImage(imageId, bitmap: Bitmap) overloads for nine-patch images.
  • Introduce new experimental ViewAnnotationOptions.enableSymbolLayerCollision option 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 experimental View.mbxCollisionBox flag.
  • Support drawing view annotation collision boxes when MapView.debugOptions is set to COLLISION.
  • Add TileStore option 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 rememberSaveable in remember*SourceState, remember*LightState, and rememberTerrainState functions 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 SecurityException crash 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

v11.21.8

Choose a tag to compare

@lyydikoi lyydikoi released this 26 Jun 13:33

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

v11.26.0-alpha.1 Pre-release
Pre-release

Choose a tag to compare

@lyydikoi lyydikoi released this 17 Jun 09:15

Features ✨ and improvements 🏁

  • [compose] Introduce experimental IndoorSelector composable function available inside MapboxMap, displaying a scrollable floor-selection widget that appears automatically when an indoor building is in view. Exposes IndoorSelectorState for programmatic access to the current floor list and selected floor, and an onFloorClicked callback for reacting to user selections.
  • [compose] Add IndoorSelectorControl headless composable inside MapIndoorSelectorScope: attaches the indoor plugin to an IndoorSelectorState without rendering any UI, enabling custom floor-selector implementations.
  • [compose] Add rotateBy, moveBy, pitchBy, and scaleBy methods to MapViewportState for incremental camera animations.
  • [compose] Add rememberStyleImage(imageId, image9Patch: NinePatchImage) and remember9PatchStyleImage(imageId, bitmap: Bitmap) overloads for nine-patch images.
  • Introduce new experimental ViewAnnotationOptions.enableSymbolLayerCollision option 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 experimental View.mbxCollisionBox flag.
  • Support drawing view annotation collision boxes when MapView.debugOptions is set to COLLISION.
  • Internal fixes and performance improvements.

Dependencies

v11.25.0

Choose a tag to compare

@lyydikoi lyydikoi released this 12 Jun 10:03

Breaking changes ⚠️

  • MapView.setMaximumFps and MapSurface.setMaximumFps are 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 IndoorLabels featureset and indoor configuration options (showIndoor, showIndoorLabels, colorIndoorLabelHighlight, colorIndoorLabelSelect) for the Mapbox Standard style.
  • Add useNativeFlingDeceleration option to GesturesPlugin that uses OverScroller for physics-based fling deceleration instead of the legacy easeTo animation, providing a more natural fling experience.
  • Throttle MapboxMap post destroyed warning logs.
  • Expose verticalFov in CameraOptions, allowing a custom vertical field of view to be set in setCamera, easeTo, and flyTo.
  • Allow using color string literals in interpolate expressions, including when set on style config at runtime.
  • Support using line-progress in line-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 ConcurrentModificationException crash that could occur when a plugin was added or removed during MapView.onDestroy.
  • Fix frame pacing breaking when the panel switches refresh-rate modes mid-session (VRR or per-UID frameRateOverride). FpsManager now updates its screenRefreshRate via a DisplayManager.DisplayListener instead of only sampling once at onStart.
  • [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

v11.25.0-rc.2 Pre-release
Pre-release

Choose a tag to compare

@natiginfo natiginfo released this 05 Jun 06:45

Bug fixes 🐞

  • Internal fixes and performance improvements.

Dependencies

v11.25.0-rc.1

v11.25.0-rc.1 Pre-release
Pre-release

Choose a tag to compare

@natiginfo natiginfo released this 03 Jun 19:34

Breaking changes ⚠️

  • MapView.setMaximumFps and MapSurface.setMaximumFps are 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 IndoorLabels featureset and indoor configuration options (showIndoor, showIndoorLabels, colorIndoorLabelHighlight, colorIndoorLabelSelect) for the Mapbox Standard style.
  • Add useNativeFlingDeceleration option to GesturesPlugin that uses OverScroller for physics-based fling deceleration instead of the legacy easeTo animation, providing a more natural fling experience.
  • Throttle MapboxMap post destroyed warning logs.
  • Expose verticalFov in CameraOptions, allowing a custom vertical field of view to be set in setCamera, easeTo, and flyTo.
  • Allow using color string literals in interpolate expressions, including when set on style config at runtime.
  • Support using line-progress in line-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 ConcurrentModificationException crash that could occur when a plugin was added or removed during MapView.onDestroy.
  • Fix frame pacing breaking when the panel switches refresh-rate modes mid-session (VRR or per-UID frameRateOverride). FpsManager now updates its screenRefreshRate via a DisplayManager.DisplayListener instead of only sampling once at onStart.
  • [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

v11.21.7

Choose a tag to compare

@natiginfo natiginfo released this 03 Jun 07:42

Bug fixes 🐞

  • Internal fixes and performance improvements.

Dependencies

v11.24.3

Choose a tag to compare

@natiginfo natiginfo released this 02 Jun 10:44

Bug fixes 🐞

  • Internal fixes and performance improvements.

Dependencies

v11.21.6

Choose a tag to compare

@kediarov kediarov released this 26 May 14:21

11.21.6 May 25, 2026

Features ✨ and improvements 🏁

  • Improve anti-aliasing for line layers with line-border-width set.

Bug fixes 🐞

  • Fix a crash that could occur when the map is destroyed while asynchronous operations are in progress.

Dependencies

v11.24.2

Choose a tag to compare

@kediarov kediarov released this 21 May 08:44

11.24.2 May 20, 2026

Bug fixes

  • Fix a crash when modifying a layer at runtime whose ID matches a layer in an imported style.

Dependencies