Skip to content

Releases: mapbox/mapbox-maps-android

v11.7.0-rc.1

16 Sep 13:38
Compare
Choose a tag to compare
v11.7.0-rc.1 Pre-release
Pre-release

11.7.0-rc.1 September 16, 2024

Breaking changes ⚠️

  • Experimental interactive features API changes:
    • FeatureStateValue was removed in favour of generic FeatureState.
    • MapboxMap.setFeatureState takes a single FeatureState class instead of vararg FeatureStateValue.
    • BaseInteractiveFeature was removed in favour of InteractiveFeature.
    • InteractiveFeature.state is now a generic of FeatureState.
    • MapboxMap.getFeatureState signature changed to be generic and return typed FeatureState in the new FeatureStateCallback.

Features ✨ and improvements 🏁

  • Introduce experimental MapboxMap.queryRenderedFeature allowing to get an InteractiveFeature for given geometry, FeaturesetHolder and optional filter.
  • Introduce experimental FillExtrusionLayer.fillExtrusionLineWidth and FillExtrusionLayerState.fillExtrusionLineWidth in Compose allowing to switch fill extrusion rendering into wall rendering mode. Use this property to render the feature with the given width over the outlines of the geometry.
  • Add missing experimental annotation to PointAnnotationManager.symbolZOffset and PolylineAnnotationManager.lineZOffset
  • Deprecate PolylineAnnotationManager.lineTrimColor in favour of PolylineAnnotationManager.lineTrimColorString/PolylineAnnotationManager.lineTrimColorInt.
  • [compose] Introduce experimental StyleInteractionsState, StyleImportsInteractionsState, LayerInteractionsState to handle interactions to the style, style imports and layers.
  • [compose] Introduce experimental StyleImport composable functions to accept StyleImportsInteractionsState as an parameter.
  • [compose] Introduce experimental LayerInteractionsState as part of *LayerState of layers that's driven by a source.
  • [compose] Introduce experimental MapState.getFeatureState, MapState.setFeatureState, MapState.removeFeatureState and MapState.resetFeatureState APIs.
  • [compose] Introduce StyleState that groups StyleImportsConfig, StyleInteractionsState, Projection, AtmosphereState, TerrainState, LightsState, styleTransition.
  • [compose] Introduce GenericStyle composable function that uses StyleState as parameter and deprecate GenericStyle that takes individual light/terrain/projection states.
  • [compose] Introduce MapStyle composable function that uses StyleState as parameter and deprecate MapStyle that takes individual light/terrain/projection states.
  • [compose] Introduce StyleImportState that groups ImportConfigs and StyleImportInteractionsState.
  • [compose] Introduce StyleImport composable function that uses StyleImportState as parameter and deprecate StyleImport that takes ImportConfigs.

Bug fixes 🐞

  • Fix a crash when calling CameraAnimationsPlugin.easeTo() with empty camera options or CameraAnimationsPlugin.playAnimatorsSequentially() / CameraAnimationsPlugin.playAnimatorsTogether() with an empty array of animators.
  • Fix ongoing animations being canceled when CameraAnimationsPlugin.flyTo() with empty camera options is called.
  • Fix simultaneous scale and rotation gestures not working when the first registered rotation is a scale one.
  • Fix crash on Android tilestore where null data was returned.
  • Fix the incorrect behaviour when using SymbolLayer.symbolZOrder property.
  • Fix retrieval of tilesets for 3d tiles in offline mode.
  • Fix rendering errors of patterns on high zoom levels.
  • Fix a bug where style changes weren't reflected after the source layer of a layer was changed.

v11.6.1

10 Sep 11:01
Compare
Choose a tag to compare

11.6.1 September 10, 2024

Bug fixes 🐞

  • Fix for offline retrieval of 3D tiles for Style.STANDARD.

Dependencies

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

v10.18.4

06 Sep 12:22
Compare
Choose a tag to compare

10.18.4 September 06, 2024

Features ✨ and improvements 🏁

  • Remove explicit main thread locking when clicking / long clicking / interacting with annotations created with CircleAnnotationManager, PointAnnotationManager, PolygonAnnotationManager, PolylineAnnotationManager that could lead to an ANR.

v11.7.0-beta.1

04 Sep 06:40
Compare
Choose a tag to compare
v11.7.0-beta.1 Pre-release
Pre-release

11.7.0-beta.1 September 03, 2024

Features ✨ and improvements 🏁

  • [compose] Introduce PointAnnotationState.iconOcclusionOpacity, PointAnnotationState.textOcclusionOpacity to control occlusion opacity for individual point annotation.
  • [compose] Remove MapboxExperimental from PolylineAnnotationGroupState.lineOcclusionOpacity, PointAnnotationGroupState.iconOcclusionOpacity, PointAnnotationGroupState.textOcclusionOpacity.
  • [compose] Expose data-driven properties on AnnotationGroupStates. Now it's possible to set data-driven properties globally on AnnotationGroupState and specify per-annotation overrides in AnnotationState. Setting global property value on AnnotationGroupState could introduce performance improvements when the amount of annotations is large.
  • [compose] Remove experimental ModelLayerState.modelFrontCutoff.
  • [compose] Introduce experimental GeoJsonSourceState.autoMaxZoom property to resolve rendering artifacts for features that use wide blur (e.g. fill extrusion ground flood light or circle layer).
  • [compose] Introduce experimental ClipLayerState.clipLayerScope API to remove data from certain style fragments only.
  • [compose] Introduce experimental PointAnnotationState.symbolZOffset property.
  • [compose] Introduce experimental PointAnnotationGroupState.symbolElevationReference property.
  • [compose] Introduce experimental SymbolLayerState.symbolElevationReference and SymbolLayerState.symbolZOffset properties.
  • [compose] Introduce experimental SymbolLayerState.symbolZOffsetTransition API.
  • Introduce experimental interactive feature elements and related APIs. Those APIs provide the convenient way to add the click / long click listener to layer / featureset / map itself with MapboxMap.addInteraction.
  • Expose lineTrimColor and lineTrimFadeRange on LineLayer which allow to set custom color for trimmed line and fade effect for trim. Update navigation example to use those properties.
  • Introduce PointAnnotation.iconOcclusionOpacity, PointAnnotation.textOcclusionOpacity to control occlusion opacity for individual point annotation.
  • Remove MapboxExperimental from SymbolLayer.iconOcclusionOpacity, SymbolLayer.textOcclusionOpacity and these properties are now supported on global zoom levels with default value changed to 0.
  • Remove MapboxExperimental from PolylineAnnotationManager.lineOcclusionOpacity, PointAnnotationManager.iconOcclusionOpacity, PointAnnotationManager.textOcclusionOpacity.
  • Expose data-driven properties on AnnotationManagers. Now it's possible to set data-driven properties globally on AnnotationManager and specify per-annotation overrides. Setting global property value on AnnotationManager could introduce performance improvements when the amount of annotations is large.
  • Remove experimental ModelLayer.modelFrontCutoff.
  • Introduce experimental GeoJsonSource.autoMaxZoom property to resolve rendering artifacts for features that use wide blur (e.g. fill extrusion ground flood light or circle layer).
  • Introduce static HttpServiceFactory.setCancellationCallback API.
  • Reduce style parsing time.
  • Enable multiple meta tiling schemes for composited sources.
  • Expose experimental ClipLayer.clipLayerScope API to remove data from certain style fragments only.
  • Expose experimental PointAnnotation.symbolZOffset property.
  • Expose experimental PointAnnotationManager.symbolElevationReference property.
  • Expose experimental SymbolLayer.symbolElevationReference and SymbolLayer.symbolZOffset properties.
  • Expose experimental SymbolLayer.symbolZOffsetTransition API.

Bug fixes 🐞

  • [compose] Fix UnsatisfiedLinkError issue when rendering preview.
  • Fix annotation issues with click / long click callback ordering and dragging. Now the order of triggering the callbacks / dragging is determined: from top-level rendered annotation to bottom-level one.
  • Fix OnAnnotationInteractionListener not triggered if any OnAnnotationClickListener.onAnnotationClick returns true.
  • Fix incorrect layer updates when using ClipLayer.clipLayerTypes or ClipLayerState.clipLayerTypes in Compose.
  • Fix shadow rendering issues when using FillExtrusionLayer.fillExtrusionCutoffFadeRange or FillExtrusionLayerState.fillExtrusionCutoffFadeRange.
  • Significantly reduce the rate at which raster-particle trails cross each other.
  • Fix normal offset to improve shadow accuracy.
  • Fix data synchronization between renderer and the main threads on map resize.
  • Regenerate location indicator mipmap on image change.
  • Fix landmark visibility issues near tile borders.
  • Fix elevated line depth occlusion issue in 2D mode.
  • Fix Dynamic View Annotation position update for annotated geojson feature with allowZElevate to be true.
  • Fix race condition between setFeatureState and removeFeatureState / resetFeatureStates resulting in feature state not being applied or removed.

Dependencies

  • Update gl-native to v11.7.0-beta.2 and common to v24.7.0-beta.2.

Known issues

  • Experimental GeoJsonSource.autoMaxZoom and GeoJsonSourceState.autoMaxZoom will return null value even after it's set.

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.