Skip to content

Releases: mapbox/mapbox-maps-android

v11.6.0

16 Aug 09:44
Compare
Choose a tag to compare

11.6.0 August 16, 2024

Breaking changes ⚠️

  • [compose] Remove StyleImage constructor with BitmapImage, use rememberStyleImage composable function to build it instead.
  • [compose] Move layer properties within *Layer composable functions to *LayerState classes, use the convenient method *Layer(sourceState, layerId, init) with trailing lambda for easier migration.
  • [compose] Move onClick listener from last parameter to the second last parameter of Annotation and AnnotationGroup composable functions.
  • [compose] Move properties within *Annotation and *AnnotationGroup composable functions to the new *AnnotationState and *AnnotationGroupState classes, use the convenient method *Annotation(point, onClick, init) and *AnnotationGroup(annotations, annotationConfig, onClick, init) with trailing lambda for easier migration.
  • [compose] Replace color int and color string property types in *Annotation with compose Color type.
  • [compose] Replace PointAnnotation.iconImageBitmap and PointAnnotation.iconImage with PointAnnotationState.iconImage with IconImage type, IconImage can be constructed with either a image id String or a Bitmap, and introduced rememberIconImage to build and remember a bitmap from Painter or from a drawable resource id.
  • [compose] Introduce StandardStyleConfigurationState class to hold the configurations of MapboxStandardStyle, and move lightPreset config from MapboxStandardStyle to StandardStyleConfigurationState; consider using overload method MapboxStandardStyle with trailing init lambda for easier migration.
  • Experimental CustomRasterSourceOptions.Builder now accepts CustomRasterSourceClient containing CustomRasterSourceTileStatusChangedCallback instead of CustomRasterSourceTileStatusChangedCallback interface directly.

Features ✨ and improvements 🏁

  • [compose] Promote Compose Extension to stable.
  • [compose] Mark MapState, MapViewportState, TerrainState, light states and source states as Stable as they are internally backed by MutableState.
  • [compose] Add more config options including showPlaceLabels, showRoadLabels, showPointOfInterestLabels, showTransitLabels and font to StandardStyleConfigurationState.
  • [compose] Introduce StyleImage constructor with Image type, and add rememberStyleImage composable functions to create and remember StyleImage.
  • [compose] Add extension function to *AnnotationOptions to handle compose Color, use it in *AnnotationGroup composable functions for convenience.
  • [compose] Add style transition parameter in GenericStyle, MapStyle and MapboxStandardStyle.
  • [compose] Extend StandardStyleConfigurationState with theme: ThemeValue and show3dObjects: BooleanValue properties.
  • [compose] Introduce composable function MapboxStandardSatelliteStyle with dedicated StandardSatelliteStyleConfigurationState.
  • Add new Style.STANDARD_SATELLITE style that combines updated satellite imagery and vector layers.
  • Introduce new import configuration properties for Style.STANDARD: theme, show3dObjects which could be set with Style.setStyleImportConfigProperty.
  • Modify awaitCameraForCoordinates extension function to use MapCameraManagerDelegate as receiver type.
  • Modify queryRenderedFeatures and querySourceFeatures extension functions to use MapFeatureQueryDelegate as receiver type.
  • Introduce asynchronous overloaded method ViewAnnotationManager.cameraForAnnotations better covering some corner cases.
  • Make use of asynchronous MapboxMap.cameraForCoordinates in Mapbox overlay plugin better covering some corner cases.
  • Mark synchronous methods MapboxMap.cameraForCoordinates and ViewAnnotationManager.cameraForAnnotations with @MapboxDelicateApi. Consider using asynchronous overloaded methods instead.
  • Deprecate MapboxMap.getDebug()/MapboxMap.setDebug() in favour of MapView.debugOptions taking new enhanced enum MapViewDebugOptions as an argument.
  • Introduce MapViewDebugOptions.CAMERA and MapViewDebugOptions.PADDING debug options to track current camera state and visualize camera paddings.
  • Expose experimental ClipLayer to remove 3D data (fill extrusions, landmarks, instanced trees) and symbols.
  • Enable r8 optimisations for all the Mapbox extensions and plugins in consumer proguard file, the optimisation will apply when minify is enabled in app's build settings.
  • Enable direct rendering into CustomRasterSource tiles.
  • Introduce a new allowZElevate option in ViewAnnotationOptions. When set to true, the annotation will be positioned on the rooftops of buildings, including both fill extrusions and models.
  • Support negative values for CircleLayer.circleBlur to render inner glow effect.
  • Support for model-uris as properties in geojson model layers.
  • Allow usage of the tile leveling schemes with maximum zoom exceeding 16.

Bug fixes 🐞

  • [compose] Fix minZoom/maxZoom not working for layers.
  • [compose] Fix java.lang.UnsupportedOperationException when setting textWritingMode and textVariableAnchor.
  • Fix compass view ignoring enabled option when it is set in updateSettings().
  • Fix background locations not received when unregistering other providers.
  • Improve linePattern precision.
  • Fix local glyph rasterization to ensure the correct Typeface is used.
  • Fix CustomRasterSource rendering when camera shows antimeridian or multiple world copies.
  • Fix elevated line occlusion issue in 2D mode.
  • Fix blinking of layer as you are panning across the antimeridian.
  • Fix modelFrontCutoff property for meshopt models.
  • Align location provider default displacement for Android and Google providers.

Dependencies

  • Update gl-native to v11.6.0 and common to v24.6.0.

v11.6.0-rc.1

02 Aug 11:18
Compare
Choose a tag to compare
v11.6.0-rc.1 Pre-release
Pre-release

11.6.0-rc.1 August 02, 2024

Features ✨ and improvements 🏁

  • Support negative values for CircleLayer.circleBlur to render inner glow effect.
  • Add new Style.STANDARD_SATELLITE style that combines updated satellite imagery and vector layers. More information could be found here.
  • Introduce new import configuration properties for Style.STANDARD: theme, show3dObjects which could be set with Style.setStyleImportConfigProperty. More information could be found here.
  • [compose] Extend StandardStyleConfigurationState with theme: ThemeValue and show3dObjects: BooleanValue properties.
  • [compose] Introduce composable function MapboxStandardSatelliteStyle with dedicated StandardSatelliteStyleConfigurationState.

Bug fixes 🐞

  • Fix elevated line occlusion issue in 2D mode.

Dependencies

  • Update gl-native to v11.6.0-rc.1 and common to v24.6.0-rc.1.

Known issues

  • Experimental ClipLayer's property clipLayerTypes is not updated in runtime. The fix is expected to land in stable 11.6.0.

v11.5.1

25 Jul 14:54
Compare
Choose a tag to compare

11.5.1 July 25, 2024

Bug fixes 🐞

  • Fix local glyph rasterization to ensure the correct Typeface is used.
  • Fix map freezing and huge memory consumption issue when using 3D models.
  • Fix CustomRasterSource rendering when camera shows antimeridian or multiple world copies.
  • Fix shadow rendering issues with FillExtrusionLayer.fillExtrusionCutoffFadeRange.

Dependencies

  • Update gl-native to v11.5.2.

v10.18.3

22 Jul 14:10
Compare
Choose a tag to compare

10.18.3 July 22, 2024

Bug fixes 🐞

  • Fix multiple annotation clusters not supported issue.

v11.6.0-beta.1

19 Jul 10:48
Compare
Choose a tag to compare
v11.6.0-beta.1 Pre-release
Pre-release

11.6.0-beta.1 July 19, 2024

Breaking changes ⚠️

  • [compose] Remove StyleImage constructor with BitmapImage, use rememberStyleImage composable function to build it instead.
  • [compose] Move layer properties within *Layer composable functions to *LayerState classes, use the convenient method *Layer(sourceState, layerId, init) with trailing lambda for easier migration (see migration example).
  • [compose] Move onClick listener from last parameter to the second last parameter of Annotation and AnnotationGroup composable functions.
  • [compose] Move properties within *Annotation and *AnnotationGroup composable functions to the new *AnnotationState and *AnnotationGroupState classes, use the convenient method *Annotation(point, onClick, init) and *AnnotationGroup(annotations, annotationConfig, onClick, init) with trailing lambda for easier migration (see migration example).
  • [compose] Replace color int and color string property types in *Annotation with compose Color type.
  • [compose] Replace PointAnnotation.iconImageBitmap and PointAnnotation.iconImage with PointAnnotationState.iconImage with IconImage type, IconImage can be constructed with either a image id String or a Bitmap, and introduced rememberIconImage to build and remember a bitmap from Painter or from a drawable resource id.
  • [compose] Introduce StandardStyleConfigurationState class to hold the configurations of MapboxStandardStyle, and move lightPreset config from MapboxStandardStyle to StandardStyleConfigurationState; consider using overload method MapboxStandardStyle with trailing init lambda for easier migration.
  • Experimental CustomRasterSourceOptions.Builder now accepts CustomRasterSourceClient containing CustomRasterSourceTileStatusChangedCallback instead of CustomRasterSourceTileStatusChangedCallback interface directly.

Features ✨ and improvements 🏁

  • [compose] Promote Compose Extension to stable.
  • [compose] Mark MapState, MapViewportState, TerrainState, light states and source states as Stable as they are internally backed by MutableState.
  • [compose] Add more config options including showPlaceLabels, showRoadLabels, showPointOfInterestLabels, showTransitLabels and font to StandardStyleConfigurationState.
  • [compose] Introduce StyleImage constructor with Image type, and add rememberStyleImage composable functions to create and remember StyleImage.
  • [compose] Add extension function to *AnnotationOptions to handle compose Color, use it in *AnnotationGroup composable functions for convenience.
  • [compose] Add style transition parameter in GenericStyle, MapStyle and MapboxStandardStyle.
  • Modify awaitCameraForCoordinates extension function to use MapCameraManagerDelegate as receiver type.
  • Modify queryRenderedFeatures and querySourceFeatures extension functions to use MapFeatureQueryDelegate as receiver type.
  • Introduce asynchronous overloaded method ViewAnnotationManager.cameraForAnnotations better covering some corner cases.
  • Make use of asynchronous MapboxMap.cameraForCoordinates in Mapbox overlay plugin better covering some corner cases.
  • Mark synchronous methods MapboxMap.cameraForCoordinates and ViewAnnotationManager.cameraForAnnotations with @MapboxDelicateApi. Consider using asynchronous overloaded methods instead.
  • Deprecate MapboxMap.getDebug()/MapboxMap.setDebug() in favour of MapView.debugOptions taking new enhanced enum MapViewDebugOptions as an argument.
  • Introduce MapViewDebugOptions.CAMERA and MapViewDebugOptions.PADDING debug options to track current camera state and visualize camera paddings.
  • Expose experimental ClipLayer to remove 3D data (fill extrusions, landmarks, instanced trees) and symbols.
  • Enable r8 optimisations for all the Mapbox extensions and plugins in consumer proguard file, the optimisation will apply when minify is enabled in app's build settings.
  • Align default displacement for Android and Google location providers.
  • Enable direct rendering into CustomRasterSource tiles.
  • Introduce a new allowZElevate option in ViewAnnotationOptions. When set to true, the annotation will be positioned on the rooftops of buildings, including both fill extrusions and models.

Bug fixes 🐞

  • [compose] Fix minZoom/maxZoom not working for layers.
  • [compose] Fix java.lang.UnsupportedOperationException when setting textWritingMode and textVariableAnchor.
  • Fix compass view ignoring enabled option when it is set in updateSettings().
  • Fix background locations not received when unregistering other providers.
  • Improve linePattern precision.
  • Fix local glyph rasterization to ensure the correct Typeface is used.
  • Fix CustomRasterSource rendering when camera shows antimeridian or multiple world copies.

Known issues

  • ClipLayer.clipLayerTypes could not be updated with a layer setter. Layer has to be re-added to update it. This is expected to be fixed in v11.6.0-rc.1.

Dependencies

  • Update gl-native to v11.6.0-beta.1 and common to v24.6.0-beta.1.

v11.4.2

17 Jul 12:36
Compare
Choose a tag to compare

11.4.2 July 17, 2024

Bug fixes 🐞

  • Fix local glyph rasterization to ensure the correct Typeface is used.

Dependencies

  • Update gl-native to v11.4.1.

v11.5.0

05 Jul 17:11
Compare
Choose a tag to compare

11.5.0 July 05, 2024

Breaking changes ⚠️

  • [compose] Make MapboxMap.onMapClickListener and MapboxMap.onMapLongClickListener nullable and default to null.
  • [compose] Rename ImportConfig to ImportConfigs.
  • [compose] Move MapboxMap.mapEvents to events flows in MapState.
  • [compose] Move MapboxMap.gesturesSettings to MapState.
  • [compose] Move Projection to generated package and rename default values to DEFAULT.
  • [compose] Rename LightPreset to LightPresetValue.
  • [compose] Rename TerrainState.disabled to TerrainState.DISABLED.
  • [compose] Replace terrain property Exaggeration with DoubleValue.
  • [compose] Replace concrete AtmosphereState properties (e.g. HighColor, HorizonBlend, SpaceColor, etc) with generic ones: ColorValue, DoubleValue, DoubleRangeValue.
  • [compose] Replace concrete Layer properties(e.g. CircleColor, CircleOpacity, IconImage etc) with generic ones: ColorValue, DoubleValue, ImageValue etc.
  • [compose] Replace concrete GeoJsonSourceState, ImageSourceState, RasterArraySourceState, RasterDemSourceState, RasterSourceState, SourceProperties, VectorSourceState properties with generic ones (e.g. BooleanValue, StringValue, LongValue...).
  • [compose] Move GeoJSONData outside of generated package.
  • Remove experimental CustomRasterSource.invalidateRegion and CustomRasterSource.invalidateTile methods and change signature of CustomRasterSource.setTileData.
  • Remove experimental CustomRasterSource.tileCacheBudget getter and setter. If needed, caching should be implemented on user's side.
  • Remove experimental MapboxMap and Style methods: invalidateStyleCustomRasterSourceTile, invalidateStyleCustomRasterSourceRegion; change signature of setStyleCustomRasterSourceTileData method in MapboxMap and Style.

Features ✨ and improvements 🏁

  • [compose] Enable r8 optimisations of compose extension in consumer proguard file, the optimisation will apply when minify is enabled in app's build settings.
  • [compose] Introduce StyleImport composable API to be used in the GenericStyle, MapStyle and MapboxStandardStyle.
  • [compose] Introduce MapState that can be hoisted to interact with map states, such as query rendered features, subscribe to map events and configure gestures settings.
  • [compose] Expose TerrainState and AtmosphereState properties as MutableState.
  • [compose] Introduce AmbientLightState, DirectionalLightState, FlatLightState as separate states; LightsState can be constructed by combination of DirectionalLightState and AmbientLightState or with FlatLightState to be set to the style.
  • [compose] Avoid recreation of objects during recomposition of GenericStyle.
  • Expose LineJoin.NONE which in conjunction with e.g. linePattern image allows to display repeated series of images along a line (e.g. dotted route line).
  • Expose new function DefaultLocationProvider.locationAnimatorOptions to allow changing the value animator properties for puck position animation.
  • Deprecate MapboxMap.cameraForCoordinates suspending extension function in favour of suspend MapboxMap.awaitCameraForCoordinates.
  • Add min/max/default values to the docs for the generated properties.
  • Add asynchronous TileStore.create().clearAmbientCache() API that can be used for clearing all ambient cache data.
  • Expose experimental lineZOffset and lineOcclusionOpacity for LineLayer.
  • Expose experimental modelFrontCutoff for ModelLayer.
  • Expose experimental iconOcclusionOpacity and textOcclusionOpacity for SymbolLayer and PointAnnotationManager.
  • Expose experimental lineOcclusionOpacity for PolylineAnnotationManager.
  • Expose experimental lineZOffset for PolylineAnnotation and PolylineAnnotationOptions.
  • Expose clusterMinPoints property for GeoJSONSource and for annotation's ClusterOptions.
  • Remove explicit main thread locking when using CircleAnnotationManager, PointAnnotationManager, PolygonAnnotationManager, PolylineAnnotationManager and dragging the map that could lead to an ANR.
  • Use dedicated thread for the tile store to increase performance.
  • [compose] Expose TerrainState and AtmosphereState properties as MutableState.

Bug fixes 🐞

  • [compose] Fix the layer and annotation ordering by moving the annotations/layers according to the relative position in the node tree.
  • [compose] Fix No enum constant com.mapbox.maps.GeoJSONSourceData crash when restoring app from background.
  • Fix transitioning to OverviewViewportState in corner cases when the map is not yet ready for rendering(e.g. immediately after MapView is created).
  • Set default minimum displacement between location updates to 0.1 meters in DefaultLocationProvider. Now this value is the same regardless of application using Google Play Services location library or not.
  • Fix PointAnnotationManager and CircleAnnotationManager cluster layer id collision issue, so that multiple clusters can work at the same time.
  • Fix RasterParticleLayer.rasterParticleCount and RasterParticleLayer.defaultRasterParticleCount returning null.
  • Fix an issue allowing view annotation to be added even if its associated layer does not exist. Now, view annotation will function correctly once the layer is added.
  • Fix feature queries for symbols above the horizon.
  • Fix the rotated icon position during the globe transition.
  • Fix Dynamic View Annotation (DVA) placement to place DVA in the center of the line geometry point, and try to avoid placing DVA near the lines' intersection point.
  • Reduce the max raster-particle animation speed. It prevents particles from moving too fast, causing a visible clipping artifact at tile boundaries.
  • Snapshotter methods throw SnapshotterDestroyedException if destroy was already called.
  • Fix precision issues in ColorUtils methods.
  • Fix NPE when parsing rgb(...) strings with ColorUtils methods.
  • Fix ScaleBar.useContinuousRendering not being in sync with ScaleBar.settings.useContinuousRendering.
  • Fix accuracy ring related location settings updates not being rendered immediately.
  • Fix a crash for Draco compressed 3D models whose geometry share indices.
  • Fix tile rendering errors when the composited source tile components are overscaled.
  • Fix transparent areas in overlapped polygons of MultiPolygon feature.
  • Fix crash on multiple style pack loading operations.

Dependencies

  • Update gl-native to v11.5.1 and common to v24.5.0.

v10.18.2

24 Jun 08:43
Compare
Choose a tag to compare

10.18.2 June 24, 2024

Features ✨ and improvements 🏁

  • Remove explicit main thread locking when using CircleAnnotationManager, PointAnnotationManager, PolygonAnnotationManager, PolylineAnnotationManager and dragging the map that could lead to an ANR.

v11.5.0-rc.1

20 Jun 12:46
Compare
Choose a tag to compare
v11.5.0-rc.1 Pre-release
Pre-release

11.5.0-rc.1 June 20, 2024

Breaking changes ⚠️

  • [compose] Make MapboxMap.onMapClickListener and MapboxMap.onMapLongClickListener nullable and default to null.
  • [compose] Rename ImportConfig to ImportConfigs.
  • [compose] Move MapboxMap.mapEvents to events flows in MapState.
  • [compose] Move MapboxMap.gesturesSettings to MapState.
  • Remove experimental CustomRasterSource.invalidateRegion and CustomRasterSource.invalidateTile methods and change signature of CustomRasterSource.setTileData.
  • Remove experimental CustomRasterSource.tileCacheBudget getter and setter. If needed, caching should be implemented on user's side.
  • Remove experimental MapboxMap and Style methods: invalidateStyleCustomRasterSourceTile, invalidateStyleCustomRasterSourceRegion; change signature of setStyleCustomRasterSourceTileData method in MapboxMap and Style.

Features ✨ and improvements 🏁

  • [compose] Introduce StyleImport composable API to be used in the GenericStyle, MapStyle and MapboxStandardStyle.
  • [compose] Introduce MapState that can be hoisted to interact with map states, such as query rendered features, subscribe to map events and configure gestures settings.
  • Deprecate MapboxMap.cameraForCoordinates suspending extension function in favour of suspend MapboxMap.awaitCameraForCoordinates.
  • Add min/max/default values to the docs for the generated properties.
  • Add asynchronous TileStore.create().clearAmbientCache() API that can be used for clearing all ambient cache data.
  • Expose experimental lineZOffset and lineOcclusionOpacity for LineLayer.
  • Expose experimental modelFrontCutoff for ModelLayer.
  • Expose experimental iconOcclusionOpacity and textOcclusionOpacity for SymbolLayer and PointAnnotationManager.
  • Expose experimental lineOcclusionOpacity for PolylineAnnotationManager.
  • Expose experimental lineZOffset for PolylineAnnotation and PolylineAnnotationOptions.

Bug fixes 🐞

  • Fix RasterParticleLayer.rasterParticleCount and RasterParticleLayer.defaultRasterParticleCount returning null.
  • Fix the rotated icon position during the globe transition.
  • Fix Dynamic View Annotation (DVA) placement to place DVA in the center of the line geometry point, and try to avoid placing DVA near the lines' intersection point.
  • Reduce the max raster-particle animation speed. It prevents particles from moving too fast, causing a visible clipping artifact at tile boundaries.

Dependencies

  • Update gl-native to v11.5.0-rc.1 and common to v24.5.0-rc.1.

v11.5.0-beta.1

11 Jun 15:59
Compare
Choose a tag to compare
v11.5.0-beta.1 Pre-release
Pre-release

11.5.0-beta.1 June 11, 2024

Breaking changes ⚠️

  • [compose] Move Projection to generated package and rename default values to DEFAULT.
  • [compose] Rename LightPreset to LightPresetValue.
  • [compose] Rename TerrainState.disabled to TerrainState.DISABLED.
  • [compose] Replace terrain property Exaggeration with DoubleValue.
  • [compose] Replace concrete AtmosphereState properties (e.g. HighColor, HorizonBlend, SpaceColor, etc) with generic ones: ColorValue, DoubleValue, DoubleRangeValue.
  • [compose] Replace concrete Layer properties(e.g. CircleColor, CircleOpacity, IconImage etc) with generic ones: ColorValue, DoubleValue, ImageValue etc.
  • [compose] Replace concrete GeoJsonSourceState, ImageSourceState, RasterArraySourceState, RasterDemSourceState, RasterSourceState, SourceProperties, VectorSourceState properties with generic ones (e.g. BooleanValue, StringValue, LongValue...).
  • [compose] Move GeoJSONData outside of generated package.

Features ✨ and improvements 🏁

  • Expose clusterMinPoints property for GeoJSONSource and for annotation's ClusterOptions.
  • Remove explicit main thread locking when using CircleAnnotationManager, PointAnnotationManager, PolygonAnnotationManager, PolylineAnnotationManager and dragging the map that could lead to an ANR.
  • Use dedicated thread for the tile store to increase performance.
  • [compose] Expose TerrainState and AtmosphereState properties as MutableState.
  • [compose] Introduce AmbientLightState, DirectionalLightState, FlatLightState as separate states; LightsState can be constructed by combination of DirectionalLightState and AmbientLightState or with FlatLightState to be set to the style.
  • [compose] Avoid recreation of objects during recomposition of GenericStyle.

Bug fixes 🐞

  • [compose] Fix No enum constant com.mapbox.maps.GeoJSONSourceData crash when restoring app from background.
  • Snapshotter methods throw SnapshotterDestroyedException if destroy was already called.
  • Fix precision issues in ColorUtils methods.
  • Fix NPE when parsing rgb(...) strings with ColorUtils methods.
  • Fix ScaleBar.useContinuousRendering not being in sync with ScaleBar.settings.useContinuousRendering.
  • Fix accuracy ring related location settings updates not being rendered immediately.
  • Fix a crash for Draco compressed 3D models whose geometry share indices.
  • Fix tile rendering errors when the composited source tile components are overscaled.
  • Fix transparent areas in overlapped polygons of MultiPolygon feature.
  • Fix crash on multiple style pack loading operations.

Dependencies

  • Update gl-native to v11.5.0-beta.1 and common to v24.5.0-beta.4.