[!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.19.2, 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.[!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.19.2, 11.20.2 or any version from 11.21.0 onward. This specific bug is only relevant to users who use tilestore offline regions.
AnnotationConfig#slotName property to allow to specify a slot to position annotation layer.queryRenderedRasterValues API for querying the rendered raster values on the map at a specific screen coordinate.Tilestore.create(path: String) instead use TileStore.setRootPath().LineString or MultiPoint in GeoJsonSource.LineLayer.lineElevationGroundScale property to scale elevated lines with terrain exaggeration.LineLayer.lineZOffset and LineLayer.lineElevationReference.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.animationDurationMs when custom OverviewViewportStateOptions.animationDurationMs is set.LineString or MultiPoint in GeoJsonSource.LineLayer.lineElevationGroundScale property to scale elevated lines with terrain exaggeration.LineLayer.lineZOffset and LineLayer.lineElevationReference.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.[!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.18.3, 11.19.2, 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.18.3, 11.19.2, 11.20.2 or any version from 11.21.0 onward. This specific bug is only relevant to users who use tilestore offline regions.
queryRenderedRasterValues API for querying the rendered raster array value at a point on the map.AnnotationConfig#slotName property to allow to specify a slot to position annotation layer.queryRenderedRasterValues API for querying the rendered raster values on the map at a specific screen coordinate.Tilestore.create(path: String) instead use TileStore.setRootPath().animationDurationMs when custom OverviewViewportStateOptions.animationDurationMs is set.[!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.18.3, 11.19.2, 11.20.2 or any version from 11.21.0 onward. This specific bug is only relevant to users who use tilestore offline regions.
ModelLayer.modelAllowDensityReduction property to disable density reduction in model layers.colorBuildings, colorCommercial, colorEducation, colorIndustrial, colorLand, colorMedical, show3dBuildings, show3dFacades, show3dLandmarks, and show3dTrees.AttributionControl composable function that exposes AttributionState programmatically, enabling developers to build custom Attribution UI outside of the map while maintaining compliance with Mapbox ToS requirements.MapInitOptions.plugins. It requires a style with indoor data and special access to indoor mapping features. To request more information, please use this form.shadowDrawBeforeLayer property to directional light to allow specifying the position in the layer stack for drawing shadows on the ground.TileStore.setRootPath() method to set tilestore path to be used by default.text-occlusion-opacity and icon-occlusion-opacity properties.userData payload for onSourceDataLoaded event during GeoJSON partial update.icon-optional, text-optional, and missing parts.ModelLayer.modelAllowDensityReduction property to disable density reduction in model layers.colorBuildings, colorCommercial, colorEducation, colorIndustrial, colorLand, colorMedical, show3dBuildings, show3dFacades, show3dLandmarks, and show3dTrees.AttributionControl composable function that exposes AttributionState programmatically, enabling developers to build custom Attribution UI outside of the map while maintaining compliance with Mapbox ToS requirements.shadowDrawBeforeLayer property to directional light to allow specifying the position in the layer stack for drawing shadows on the ground.userData payload for onSourceDataLoaded event during GeoJSON partial update.GeofencingState.Builder, GeofencingError.Builder, GeofencingEvent.Builder and GeofencingOptions.Builder APIs.MapboxExperimental annotations from Geofencing APIs.ModelLayer to stable.SymbolLayer.occlusionOpacityMode, SymbolLayer.iconColorBrightnessMax, SymbolLayer.iconColorBrightnessMin, SymbolLayer.iconColorContrast properties.FillExtrusionLayer.castShadows property.GeoJsonSource.minZoom property.RasterArraySource.volatile experimental property.line-emissive-strength property data-driven.MapboxMap.setFeatureStateExpression(), removeFeatureStateExpression(), and resetFeatureStateExpressions() APIs to efficiently update feature state for multiple features at once using expressions.MapOptions.Builder.scaleFactor() for scaling icons and texts.Marker composable with onClick parameterScaleBarSettings.distanceUnits property supporting metric, imperial, and nautical units, replacing the boolean isMetricUnits property.fuelingStationModePointOfInterestLabels configuration option to Mapbox Standard and Standard Satellite styles. Control the visibility of fuel station and electric charging station POI labels with options: "default" (shows both), "fuel" (fuel stations only), "electric" (charging stations only), or "none" (hides both).AppearancesActivity in example application for further details.updateSettings { enabled = false }distance and within expressions when processing large GeoJSON datasets.MapboxExperimental annotations from Geofencing APIs.ModelLayer to stable.SymbolLayer.occlusionOpacityMode, SymbolLayer.iconColorBrightnessMax, SymbolLayer.iconColorBrightnessMin, SymbolLayer.iconColorContrast properties.FillExtrusionLayer.castShadows property.GeoJsonSource.minZoom property.RasterArraySource.volatile experimental property.line-emissive-strength property is now data-driven, allowing different road types to be rendered in a single layer for improved performanceMapboxMap.setFeatureStateExpression(), removeFeatureStateExpression(), and resetFeatureStateExpressions() APIs to efficiently update feature state for multiple features at once using expressions.updateSettings { enabled = false }GeofencingState.Builder, GeofencingError.Builder, GeofencingEvent.Builder and GeofencingOptions.Builder APIs.MapOptions.Builder.scaleFactor() for scaling icons and texts.Marker composable with onClick parameterScaleBarSettings.distanceUnits property supporting metric, imperial, and nautical units, replacing the boolean isMetricUnits property.fuelingStationModePointOfInterestLabels configuration option to Mapbox Standard and Standard Satellite styles. Control the visibility of fuel station and electric charging station POI labels with options: "default" (shows both), "fuel" (fuel stations only), "electric" (charging stations only), or "none" (hides both).AppearancesActivity in example application for further details.distance and within expressions when processing large GeoJSON datasets.