Changelog for Mapbox Maps SDK for Android
Mapbox welcomes participation and contributions from everyone.
16 KB Page Size Support: Starting with version 11.7.0 and 10.19.0, NDK 27 is supported with dedicated artifacts that include support for 16 KB page sizes. If your app does not require 16 KB page size support, you can keep using our default artifacts without -ndk27 suffix. For more information about our NDK support, see https://docs.mapbox.com/android/maps/guides/#ndk-support
main
11.25.0-rc.2 June 04, 2026
Bug fixes 🐞
- Internal fixes and performance improvements.
Dependencies
11.25.0-rc.1 June 02, 2026
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
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
11.24.3 May 27, 2026
Dependencies
11.24.2 May 20, 2026
Dependencies
11.24.1 May 19, 2026
Features ✨ and improvements 🏁
- Expose
FeaturesetFeature.originalFeature property.
- Add Vulkan rendering backend support (Public Preview). The Vulkan backend is published as a separate artifact (
android-core-vulkan / android-core-vulkan-ndk27) that replaces the default OpenGL-based android-core. To use it, replace the default core dependency with the Vulkan variant. In your build.gradle.kts add:
configurations.all {
resolutionStrategy.dependencySubstitution {
all {
val requested = requested as? ModuleComponentSelector
if (requested?.group == "com.mapbox.maps" &&
(requested.module == "android-core" || requested.module == "android-core-ndk27")
) {
val vulkanModule = requested.module.replace("android-core", "android-core-vulkan")
useTarget("com.mapbox.maps:$vulkanModule:${requested.version}")
}
}
}
}
Known limitations:
- Android 12 (API 31) or later is recommended. Earlier Android versions may exhibit GPU driver bugs, particularly on devices with Adreno GPUs.
- Only
arm64-v8a is supported.
- No automatic fallback to OpenGL.
MapWidget (Android Auto) is not yet supported.
- Custom layer API is not yet supported.
MapView.snapshot() is not yet supported.
- Rain precipitation effect is not rendered (snow works).
- Add support for rendering landmark models with level-of-detail (LOD), improving performance and memory use for distant 3D landmarks.
- Improve additive blend mode rendering on line layers with high data density, and add the
line-blend-additive-clamp style property for opting out of dynamic density mapping with a fixed value.
- Set a default ambient cache quota of 1 GB and over-evict when the quota is exceeded to reduce eviction churn.
Bug fixes 🐞
- Fix a crash that could occur when the map is destroyed while asynchronous operations are still in progress.
- Fix the
NetworkRestriction.DISALLOW_EXPENSIVE network option not being respected, which could cause map requests to proceed over metered connections when configured otherwise.
- Fix
isMetricUnits/distanceUnits sync in ScaleBar settings DSL generated by KSP codegen.
- Fix style import config property updates being lost when applied while a concurrent import URL change was loading.
- Fix incorrect color output when applying a color LUT to premultiplied colors.
- Fix incorrect symbol elevation rendering on Mali GPUs (e.g. Google Pixel 9 Pro XL) caused by insufficient shader precision for large z-offset values.
- Fix a crash in the vector tile layer cache when a sibling tile was destroyed during cache reuse.
- Internal fixes and performance improvements.
Dependencies
11.24.0 May 18, 2026
This release has documentation issues and should not be used. Please use 11.24.1 instead.
Dependencies
11.21.6 May 25, 2026
Dependencies
11.21.5 May 15, 2026
Features ✨ and improvements 🏁
- Add animated transitions when toggling HD roads.
Bug fixes 🐞
- Fix a situation where updated import config properties were ignored after an import URL change.
Dependencies
11.23.1 May 11, 2026
Bug fixes 🐞
- Fix the
disallow_expensive HTTP setting not being respected on Android; the SDK now binds requests to a non-metered network (e.g., Wi-Fi) when this flag is set, with Cronet on API 23+ and an OkHttp fallback on older API levels.
- Fix a memory leak where
HttpClient instances could not be garbage collected because callbacks held strong references back to the client.
- Internal fixes and performance improvements.
Dependencies
11.22.3 May 07, 2026
Features ✨ and improvements 🏁
- Internal fixes and performance improvements.
Dependencies
11.24.0-rc.1 May 05, 2026
Features ✨ and improvements 🏁
- Expose
FeaturesetFeature.originalFeature property.
- Add Vulkan rendering backend support (Public Preview). The Vulkan backend is published as a separate artifact (
android-core-vulkan / android-core-vulkan-ndk27) that replaces the default OpenGL-based android-core. To use it, replace the default core dependency with the Vulkan variant. In your build.gradle.kts add:
configurations.all {
resolutionStrategy.dependencySubstitution {
all {
val requested = requested as? ModuleComponentSelector
if (requested?.group == "com.mapbox.maps" &&
(requested.module == "android-core" || requested.module == "android-core-ndk27")
) {
val vulkanModule = requested.module.replace("android-core", "android-core-vulkan")
useTarget("com.mapbox.maps:$vulkanModule:${requested.version}")
}
}
}
}
Known limitations:
- Android 12 (API 31) or later is recommended. Earlier Android versions may exhibit GPU driver bugs, particularly on devices with Adreno GPUs.
- Only
arm64-v8a is supported.
- No automatic fallback to OpenGL.
MapWidget (Android Auto) is not yet supported.
- Custom layer API is not yet supported.
MapView.snapshot() is not yet supported.
- Rain precipitation effect is not rendered (snow works).
- Add support for rendering landmark models with level-of-detail (LOD), improving performance and memory use for distant 3D landmarks.
- Improve additive blend mode rendering on line layers with high data density, and add the
line-blend-additive-clamp style property for opting out of dynamic density mapping with a fixed value.
- Set a default ambient cache quota of 1 GB and over-evict when the quota is exceeded to reduce eviction churn.
Bug fixes 🐞
- Fix
isMetricUnits/distanceUnits sync in ScaleBar settings DSL generated by KSP codegen.
- Fix style import config property updates being lost when applied while a concurrent import URL change was loading.
- Fix incorrect color output when applying a color LUT to premultiplied colors.
- Fix incorrect symbol elevation rendering on Mali GPUs (e.g. Google Pixel 9 Pro XL) caused by insufficient shader precision for large z-offset values.
- Fix a crash in the vector tile layer cache when a sibling tile was destroyed during cache reuse.
- Internal fixes and performance improvements.
Dependencies
11.21.4 May 05, 2026
Features ✨ and improvements 🏁
- Internal fixes and performance improvements.
Dependencies
11.23.0 April 29, 2026
Features ✨ and improvements 🏁
- Support symbol paint properties in appearances — symbol layers can now use feature-dependent appearances for paint properties (not only layout), enabling richer per-feature styling of text and icons.
- Improve rendering performance of feature cutouts — optimized depth sampling in the cutout shader yields noticeably smoother rendering when feature cutouts are enabled (e.g. elevated route with cutouts).
- TileStore can now store 3D landmark/navigation tile content types, unblocking their use in offline regions.
- Add support for USB import radius in TileStore — new import parameter for seeding offline tile packs from USB media within a configurable radius.
- Evict tiles based on LRU and optimize eviction — the default eviction policy now uses least-recently-used instead of expiration-based scoring, keeping frequently-viewed tiles around longer and making cleanup passes faster.
- Settings can be set on startup — the SDK now loads
persistent_settings.json and non_persistent_settings.json from the app's internal storage directory at startup, allowing configuration changes without an app rebuild.
Bug fixes 🐞
- Fix attribution links accepting non-HTTP URI schemes.
- Fix a potential file descriptor leak that could cause resource exhaustion.
- Fix icons appearing at incorrect size when
icon-size is data-driven and a non-default scale factor is applied.
- Fix fog incorrectly obscuring the globe when using a custom field of view.
- Fix tile data corruption causing integrity check failures for small tiles stored in the offline cache.
- Fix a crash that could occur when the tile store is destroyed while downloads are still being processed.
- Fix 3D models occasionally not rendering on first load on some devices, caused by background shader compilation not signaling the renderer when compilation completed.
- Fix a crash in
ConfigExpression where dereferencing an empty optional caused undefined behaviour.
- [compose] Fixed Composition leak in ViewAnnotation when annotations are removed from the map.
- [gestures] Fixed interaction leak in
setGesturesManager causing native map interactions to accumulate.
- [gestures] Added post-cleanup guard to prevent re-registering interactions or listeners after plugin cleanup.
Dependencies
11.22.1 April 28, 2026
Bug fixes 🐞
- [gestures] Fixed interaction leak in
setGesturesManager causing native map interactions to accumulate.
- [gestures] Added post-cleanup guard to prevent re-registering interactions or listeners after plugin cleanup.
Dependencies
11.21.3 April 23, 2026
Bug fixes 🐞
- Fix above-ground route line not rendering over tunnel geometry when cutout is active.
- Fix rendering artifacts on feature cutout geometries caused by incorrect shader clipping.
- Fix a potential crash in style configuration expression evaluation when a config value is unset.
Dependencies
11.23.0-rc.1 April 20, 2026
Bug fixes 🐞
- Fix attribution links accepting non-HTTP URI schemes.
- Fix a potential file descriptor leak that could cause resource exhaustion.
- [compose] Fixed Composition leak in ViewAnnotation when annotations are removed from the map.
- [compose] Fix Fragment lifecycle observer leak in ViewAnnotation on annotation removal.
Dependencies
11.22.0 April 16, 2026
Features ✨ and improvements 🏁
- Expose
height and minHeight properties on StandardBuildingsFeature.
- Deprecate
PointAnnotation.iconImage getter. Reading this property exposes an internally generated image ID managed by the annotation manager. If you need a stable, reusable image ID, register the image in the style yourself via the Style API and pass the ID explicitly via PointAnnotationOptions.withIconImage(String). In that case you are responsible for the image's lifecycle and must remove it from the style when no longer needed.
- Internal fixes and performance improvements.
Bug fixes 🐞
- Fix native memory leak in
AnnotationManager where bitmap style images were not removed when annotations were deleted.
- Fix feature ID format mismatch in JNI marshaling where whole-number
double feature IDs (e.g. 12345.0) were incorrectly serialized as "12345.000000" instead of "12345", causing setFeatureState to fail when using IDs obtained from queryRenderedFeatures.
- [compose] Fix
MapboxMap crash (place is called on a deactivated node) when used inside a LazyColumn.
- [compose] Known limitation: on Compose Foundation 1.7+ a secondary crash (
Apply is called on deactivated node) may still occur when MapboxMap is used inside a LazyColumn during fast scrolling/item reuse because of LazyColumn prefetch behavior. Workaround: pass a no-op LazyListPrefetchStrategy to rememberLazyListState(); see LazyColumnMapActivity for an example.
- Fix location indicator cutout appearing in the wrong position on devices with high pixel density.
- Fix lines with sub-pixel width being rendered thicker than intended.
- Fix tile data decompression by properly tracking compression state in tile storage.
- Fix potential ANR caused by a deadlock in lifecycle management.
- Fix tile store cleanup task incorrectly deleting in-progress downloads.
- Fix tiles failing to load on some Android devices when the server response is incomplete.
- Fix tunnel roads being clipped or missing near the top of the screen at high pitch angles when crossing tile boundaries.
- Fix stretchable icons used with
icon-text-fit disappearing in some situations.
- Fix dashed lines not rendering correctly when
line-dasharray values are smaller than 1.
Dependencies
11.21.2 April 16, 2026
Features ✨ and improvements 🏁
- Improve rendering performance of feature cutouts
Bug fixes 🐞
- Fix tile cover issues for tunnels
Dependencies
11.20.3 April 14, 2026
Bug fixes 🐞
- Fix tile data decompression by properly tracking compression state in tile storage.
Dependencies
11.21.1 April 10, 2026
Features ✨ and improvements 🏁
- Deprecate
PointAnnotation.iconImage getter. Reading this property exposes an internally generated image ID managed by the annotation manager. If you need a stable, reusable image ID, register the image in the style yourself via the Style API and pass the ID explicitly via PointAnnotationOptions.withIconImage(String). In that case you are responsible for the image's lifecycle and must remove it from the style when no longer needed.
Bug fixes 🐞
- Fix native memory leak in
AnnotationManager where bitmap style images were not removed when annotations were deleted.
- Fix an issue where overscaled tiles from offline tile packs could delay fetching higher-resolution network tiles.
Dependencies
11.22.0-rc.1 April 08, 2026
Features ✨ and improvements 🏁
- Expose
height and minHeight properties on StandardBuildingsFeature.
- Deprecate
PointAnnotation.iconImage getter. Reading this property exposes an internally generated image ID managed by the annotation manager. If you need a stable, reusable image ID, register the image in the style yourself via the Style API and pass the ID explicitly via PointAnnotationOptions.withIconImage(String). In that case you are responsible for the image's lifecycle and must remove it from the style when no longer needed.
- Internal fixes and performance improvements.
Bug fixes 🐞
- Fix native memory leak in
AnnotationManager where bitmap style images were not removed when annotations were deleted.
- Fix feature ID format mismatch in JNI marshaling where whole-number
double feature IDs (e.g. 12345.0) were incorrectly serialized as "12345.000000" instead of "12345", causing setFeatureState to fail when using IDs obtained from queryRenderedFeatures.
- [compose] Fix
MapboxMap crash (place is called on a deactivated node) when used inside a LazyColumn.
- [compose] Known limitation: on Compose Foundation 1.7+ a secondary crash (
Apply is called on deactivated node) may still occur when MapboxMap is used inside a LazyColumn during fast scrolling/item reuse because of LazyColumn prefetch behavior. Workaround: pass a no-op LazyListPrefetchStrategy to rememberLazyListState(); see LazyColumnMapActivity for an example.
- Fix location indicator cutout appearing in the wrong position on devices with high pixel density.
- Fix lines with sub-pixel width being rendered thicker than intended.
- Fix tile data decompression by properly tracking compression state in tile storage.
- Fix potential ANR caused by a deadlock in lifecycle management.
- Fix tile store cleanup task incorrectly deleting in-progress downloads.
- Fix tiles failing to load on some Android devices when the server response is incomplete.
Dependencies
11.21.0 April 02, 2026
Bug fixes 🐞
- Fix tile store eviction failing to clean up files for decompressed tiles, causing gradual storage growth.
- Fix gaps in elevated route line rendering at ramp transitions and tile borders.
- Fix indicator cutout (location puck area) appearing in the wrong position on high-DPI displays.
- Fix incorrect shadow culling on fill-extrusion layers.
- Fix ambient occlusion not being clipped when fill-extrusion layers are clipped by clip layers.
- Fix clip layer updates not always refreshing clipped layers and shadows.
- Fix native memory leak in
AnnotationManager where bitmap style images were not removed onDestroy.
- Fix feature cutout rendering artifacts on some devices caused by insufficient shader precision.
- Fix rendering of stacked underground 3D roads.
- Fix a crash that could occur when the map is destroyed during style loading.
- Fix underground road geometry being clipped in orthographic projection with small viewports.
- Fix map flickering caused by stencil buffer conflicts between raster and hillshade layers.
- Fix potential ANRs when receiving location updates under heavy system load.
- Internal fixes and performance improvements.
Dependencies
11.20.2 March 25, 2026
Bug fixes 🐞
- Fix a bug in eviction logic for TileStore.
Dependencies
11.21.0-rc.1 March 23, 2026
Bug fixes 🐞
- Fix intermittent rendering artifacts (reversed/large bitmaps) on Android Auto caused by stale texture ID reuse in
BitmapWidgetRenderer after surface recreation.
- Fix native memory leak in
AnnotationManager where bitmap style images were not removed onDestroy.
- Fix feature cutout rendering artifacts on some devices caused by insufficient shader precision.
- Fix rendering of stacked underground 3D roads.
- Fix a crash that could occur when the map is destroyed during style loading.
- Fix underground road geometry being clipped in orthographic projection with small viewports.
- Fix map flickering caused by stencil buffer conflicts between raster and hillshade layers.
- Fix potential ANRs when receiving location updates under heavy system load.
- Fix a bug in eviction logic for TileStore.
- Internal fixes and performance improvements.
Dependencies
11.20.1 March 17, 2026
Bug fixes 🐞
- Internal fixes and performance improvements.
Dependencies
11.20.0 March 13, 2026
Features ✨ and improvements 🏁
- [compose] Add declarative animation API to experimental
Marker composable with two animation triggers: appearAnimation and disappearAnimation. Each trigger accepts a list of MarkerAnimationEffect including wiggle (pendulum rotation), scale, fadeIn, and fadeOut. Effects can be customized with parameters (e.g., scale(from = 0.5f, to = 1.5f), fade(from = 0.5f, to = 1.0f)) and combined for rich animations. See MarkersActivity example for usage.
- Improve FPS statistics logging when
mapView.setOnFpsChangedListener() is used with separate tracking for frame pacing skips and missed render frames for better performance debugging.
Bug fixes 🐞
- Fix
MapSurface.setMaximumFps not working correctly on secondary displays (e.g. Android Auto). Use Context.getDisplay() on API 30+ to get the actual display refresh rate instead of always using the primary display's rate.
- Fix
PointAnnotationManager.iconImageBitmap setter not registering the bitmap image with the style, causing group-level bitmap icons to be invisible.
- Fix feature cutout artifacts at route overlaps.
- Fix a data race condition for
FillExtrusion layer.
- Fix several issues related to runtime symbol appearances switches.
- Fix disappearing icons after reducing memory use.
- Fix landmark POI image loads causes relayout for unrelated layers.
- Fix tilestore eviction logic to not block tilestore thread completely.
- Fix out-of-bounds issue for elevated line caused by an incorrect clipping result.
Dependencies
11.20.0-rc.1 March 03, 2026
Features ✨ and improvements 🏁
- [compose] Add declarative animation API to experimental
Marker composable with two animation triggers: appearAnimation and disappearAnimation. Each trigger accepts a list of MarkerAnimationEffect including wiggle (pendulum rotation), scale, fadeIn, and fadeOut. Effects can be customized with parameters (e.g., scale(from = 0.5f, to = 1.5f), fade(from = 0.5f, to = 1.0f)) and combined for rich animations. See MarkersActivity example for usage.
- Improve FPS statistics logging when
mapView.setOnFpsChangedListener() is used with separate tracking for frame pacing skips and missed render frames for better performance debugging.
Bug fixes 🐞
- Fix
MapSurface.setMaximumFps not working correctly on secondary displays (e.g. Android Auto). Use Context.getDisplay() on API 30+ to get the actual display refresh rate instead of always using the primary display's rate.
- Fix
PointAnnotationManager.iconImageBitmap setter not registering the bitmap image with the style, causing group-level bitmap icons to be invisible.
- Fix feature cutout artifacts at route overlaps.
- Fix a data race condition for
FillExtrusion layer.
- Fix several issues related to runtime symbol appearances switches.
- Fix disappearing icons after reducing memory use.
- Fix landmark POI image loads causes relayout for unrelated layers.
- Fix tilestore eviction logic to not block tilestore thread completely.
- Fix out-of-bounds issue for elevated line caused by an incorrect clipping result.
Dependencies
11.19.1 March 10, 2026
Dependencies
11.19.6 April 10, 2026
Bug fixes 🐞
- Internal fixes and performance improvements.
Dependencies
11.19.5 April 02, 2026
Bug fixes 🐞
- Internal fixes and performance improvements.
Dependencies
11.19.4 April 02, 2026
Bug fixes 🐞
- Fix overscaled offline tilepack tiles being showed after switching to online mode
Dependencies
11.19.3 March 31, 2026
Bug fixes 🐞
- Internal fixes and performance improvements.
Dependencies
11.19.2 March 25, 2026
Bug fixes 🐞
- Fix a bug in eviction logic for TileStore.
Dependencies
11.19.0 February 24, 2026
Features ✨ and improvements 🏁
- Introduce new
AnnotationConfig#slotName property to allow to specify a slot to position annotation layer.
- Introduce experimental
queryRenderedRasterValues API for querying the rendered raster values on the map at a specific screen coordinate.
- Deprecate
Tilestore.create(path: String) instead use TileStore.setRootPath().
- Improve data serialization speed when using
LineString or MultiPoint in GeoJsonSource.
- Introduce new
LineLayer.lineElevationGroundScale property to scale elevated lines with terrain exaggeration.
- Promote elevated lines properties to stable:
LineLayer.lineZOffset and LineLayer.lineElevationReference.
- Introduce experimental
SymbolScaleBehavior API to automatically scale map symbols (icons and text) based on system accessibility text size settings. Set MapboxMap.symbolScaleBehavior property to configure: SymbolScaleBehavior.system (automatic scaling), SymbolScaleBehavior.system(mapping) (custom mapping function), or SymbolScaleBehavior.fixed(scaleFactor) (fixed scale, default is 1.0). Valid scale factor range is [0.8, 2.0]. Automatic scaling is opt-in; symbols default to fixed 1.0x scale.
- General fixes and performance improvements.
Bug fixes 🐞
- Fix rare scenario where map render surface size was wrong.
- Respect
animationDurationMs when custom OverviewViewportStateOptions.animationDurationMs is set.
- Fix point View Annotation flickering and hiding on moving anchor out of screen.
- Fixed a potential leak of animators, which resulted in the absence of MapIdle events.
- Fix elevated line bevel join artifacts at sharp corners.
- [compose] Improved reliability of attribution list updates on source change.
- Fix duplicate name detection bug in symbol appearance conversion.
- Fix a crash when using feature dependent appearances with images and default appearance image is empty.
Dependencies
11.19.0-rc.1 February 12, 2026
Features ✨ and improvements 🏁
- Improve data serialization speed when using
LineString or MultiPoint in GeoJsonSource.
- Introduce new
LineLayer.lineElevationGroundScale property to scale elevated lines with terrain exaggeration.
- Promote elevated lines properties to stable:
LineLayer.lineZOffset and LineLayer.lineElevationReference.
- Introduce experimental
SymbolScaleBehavior API to automatically scale map symbols (icons and text) based on system accessibility text size settings. Set MapboxMap.symbolScaleBehavior property to configure: SymbolScaleBehavior.system (automatic scaling), SymbolScaleBehavior.system(mapping) (custom mapping function), or SymbolScaleBehavior.fixed(scaleFactor) (fixed scale, default is 1.0). Valid scale factor range is [0.8, 2.0]. Automatic scaling is opt-in; symbols default to fixed 1.0x scale.
- General fixes and performance improvements.
Bug fixes 🐞
- Fixed a potential leak of animators, which resulted in the absence of MapIdle events.
- Fix elevated line bevel join artifacts at sharp corners.
- [compose] Improved reliability of attribution list updates on source change.
Dependencies
11.18.2 February 09, 2026
Bug fixes 🐞
- Fix disappearing icons after reducing memory use.
- Fix Point View Annotation flickering and hiding on moving anchor out of screen
Dependencies
11.18.1 January 29, 2026
Dependencies
Features ✨ and improvements 🏁
- Add
ModelSource support with ModelSourceModel, ModelMaterialOverride, and ModelNodeOverride to enable interactive 3D models. Material overrides allow customization of color, emissive strength, opacity, and color mix intensity. Node overrides enable control of model part transformations such as rotating doors, landing gear, or propellers. Models can be updated via source-driven approach (modifying ModelSource.models directly) or feature-state driven approach (using expressions with feature state for dynamic control). For implementation examples, see Interactive3DModelFeatureStateActivity (Compose), Interactive3DModelSourceActivity (View), and Animated3DModelActivity (Compose).
11.19.0-beta.1 January 28, 2026
Features ✨ and improvements 🏁
- Introduce experimental
queryRenderedRasterValues API for querying the rendered raster array value at a point on the map.
- Introduce new
AnnotationConfig#slotName property to allow to specify a slot to position annotation layer.
- Introduce experimental
queryRenderedRasterValues API for querying the rendered raster values on the map at a specific screen coordinate.
- Introduce
StyleAttributionsChanged event for detecting map attributions changes
- Deprecate
Tilestore.create(path: String) instead use TileStore.setRootPath().
Bug fixes 🐞
- Fix rare scenario where map render surface size was wrong.
- Respect
animationDurationMs when custom OverviewViewportStateOptions.animationDurationMs is set.
- Fix point View Annotation flickering and hiding on moving anchor out of screen.
Dependencies
Features ✨ and improvements 🏁
- Rename
IndoorManager.setOnIndoorUpdatedCallback to IndoorManager.subscribeOnIndoorUpdated with returned Cancelable support. Add flow-based val onIndoorUpdated: Flow<IndoorState> API.
11.18.0 January 15, 2026
Breaking changes ⚠️
- Remove line-cutout-width and change line-cutout-opacity default to 1.0