persistent_settings.json and non_persistent_settings.json from the app's internal storage directory at startup, allowing configuration changes without an app rebuild.icon-size is data-driven and a non-default scale factor is applied.ConfigExpression where dereferencing an empty optional caused undefined behaviour.setGesturesManager causing native map interactions to accumulate.setGesturesManager causing native map interactions to accumulate.persistent_settings.json and non_persistent_settings.json from the app's internal storage directory at startup, allowing configuration changes without an app rebuild.icon-size is data-driven and a non-default scale factor is applied.height and minHeight properties on StandardBuildingsFeature.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.AnnotationManager where bitmap style images were not removed when annotations were deleted.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.MapboxMap crash (place is called on a deactivated node) when used inside a LazyColumn.
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.icon-text-fit disappearing in some situations.line-dasharray values are smaller than 1.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.AnnotationManager where bitmap style images were not removed when annotations were deleted.height and minHeight properties on StandardBuildingsFeature.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.AnnotationManager where bitmap style images were not removed when annotations were deleted.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.MapboxMap crash (place is called on a deactivated node) when used inside a LazyColumn.
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.AnnotationManager where bitmap style images were not removed onDestroy.BitmapWidgetRenderer after surface recreation.AnnotationManager where bitmap style images were not removed onDestroy.[!IMPORTANT] A bug in the SDK's offline data management causes untracked data to accumulate instead of being removed under specific conditions. This leads to uncontrolled storage growth, potentially degrading system performance or causing complete unusability if disk space is exhausted. The required version for upgrade is 11.20.2 or any version from 11.21.0 onward. This specific bug is only relevant to users who use tilestore offline regions.
[!IMPORTANT] A bug in the SDK's offline data management causes untracked data to accumulate instead of being removed under specific conditions. This leads to uncontrolled storage growth, potentially degrading system performance or causing complete unusability if disk space is exhausted. The required version for upgrade is 11.20.2 or any version from 11.21.0 onward. This specific bug is only relevant to users who use tilestore offline regions.
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.mapView.setOnFpsChangedListener() is used with separate tracking for frame pacing skips and missed render frames for better performance debugging.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.PointAnnotationManager.iconImageBitmap setter not registering the bitmap image with the style, causing group-level bitmap icons to be invisible.FillExtrusion layer.