Releases: mapbox/mapbox-maps-android
Releases · mapbox/mapbox-maps-android
v11.9.0
11.9.0 December 18, 2024
Breaking changes ⚠️
- Expose experimental Geofencing with
com.mapbox.annotation.MapboxExperimental
. - Move experimental geofencing classes to
com.mapbox.common.geofencing
package fromcom.mapbox.common.experimental.geofencing
. - Make constructor of experimental
GeofencingOptions
,GeofencingEvent
and other geofencing classes holding data private. AssociatedBuilder()
classes should be used instead. - Remove experimental
MapboxMap.queryRenderedFeatures
andMapboxMap.querySourceFeatures
that usedFeaturesetQueryTarget
as an argument.
Features ✨ and improvements 🏁
- Introduce experimental
FillExtrusionLayer.fillExtrusionBaseAlignment
andFillExtrusionLayer.fillExtrusionHeightAlignment
APIs to control the behavior of fill extrusion base over terrain and the behavior of fill extrusion height over terrain respectively. - Introduce experimental
FillLayer.fillZOffset
andFillLayer.fillZOffsetTransition
APIs to specify a uniform elevation in meters and define the transition offillZOffset
respectively. - Adds support for
fillZOffset
inPolygonAnnotation
,PolygonAnnotationManager
,PolygonAnnotationOptions
. - Introduce
BackgroundLayer.backgroundPitchAlignment
API to configure the orientation of background layer. - Introduce
LocationIndicatorLayer.emphasisCircleGlowRange
andLocationIndicatorLayer.emphasisCircleGlowRangeTransition
APIs to control the glow effect of the emphasis circle from the solid start to the fully transparent end and to set the transition options for theemphasisCircleGlowRange
property, respectively. - Introduce
radius
parameter forClickInteraction
andLongClickInteraction
to support an extra area around the interaction. - Add a way to specify options for
Expression.image()
. - Introduce experimental
AnimatableModel
,ModelMaterialPart
,ModelNodePart
APIs to style the 3D location puck's overridable parts. Implementation example. - Introduce
modelRotationExpression
,modelColor
,modelColorExpression
,modelColorMixIntensity
,modelColorMixIntensityExpression
,modelOpacityExpression
onLocationPuck3D
. - Introduce experimental
LocationPuck3D.materialOverrides
andLocationPuck3D.nodeOverrides
API to allow model parts overrides. - Add vector icons support: SDK will now download vector icons and rasterize them locally, which will results in better icon quality for icons resized via icon-size. Changeable colors support: icon expression can now have optional parameter to change named colors described in SVG icons metadata.
- Add support for shadows from elevated structures.
- Add
toHsla
expression. - Introduce experimental
Snow
andRain
APIs to show the snow or rain effect on the map. - Expose experimental
getFeaturesets
forMapboxMap
andStyle
. - Remove
MapboxExperimental
fromClipLayer
. - [compose] Introduce
LocationIndicatorLayerState.emphasisCircleGlowRange
andLocationIndicatorLayerState.emphasisCircleGlowRangeTransition
properties. - [compose] Introduce
FillLayerState.fillZOffset
andFillLayerState.fillZOffsetTransition
properties. - [compose] Introduce
FillExtrusionLayerState.fillExtrusionBaseAlignment
andFillExtrusionLayerState.fillExtrusionHeightAlignment
properties. - [compose] Introduce
BackgroundLayerState.backgroundPitchAlignment
property. - [compose] Adds support for
fillZOffset
inPolygonAnnotationState
,PolygonAnnotationGroupState
. - [compose] Expose
MapViewportState.cameraForCoordinates
method. - [compose] Introduce
radius
parameter for all relevant compose functions for interactions to support an extra area around the interaction. - [compose] Introduce experimental
SnowState
andRainState
APIs to show the snow or rain effect on the map.
Bug fixes 🐞
- Fix dark shades caused by corner case light directions when
FillLayer.fillExtrusionEmissiveStrength
is set to high values (closer to 1). - Fix rendering of interleaved SDF and non-SDF icons in the same layer.
- Fix
LineLayer.lineEmissiveStrength
not being applied to patterned lines. - Fix map flickering on some Mali and PowerVR GPUs.
- Fix shader fog computation being incorrectly enabled for landmarks.
- Handle empty payloads for offline resources.
- Encapsulate config expression in assertion expression when expected return type is known.
- Fixes a bug which caused icon shifts in some cases.
- Fix feature state update if layer contains data driven
measureLight
expression. - Fix the owning thread log error prints on legacy
OfflineRegion
creation. - Fix a crash in interpolate expression.
- Resolve usage of
GeoJsonSource.autoMaxZoom
for single feature. - Resolve dotted line issue with very long lines.
- Fix texture gather for shadows not being selected correctly by default.
- Performance improvements for runtime-added images.
- Fix
AndroidDeviceLocationProvider
reporting an error when location permissions are not granted. - Improve exception handling inside Cronet providers when Cronet library failed to load.
- Improve character spacing for text offsets.
- Fixed crash on Android API level < 26.
- Do not load vector icons for client-provided sprites.
- Fall back to the feature's original ID when promoteId is an object and the source layer is not specified as a key in the object.
- Fixed crash caused by a repeated command buffer commit call.
- Fixed invalid processing of icon-size 0, using biggest of two image sizes with interpolated icon-size during vector icons rasterization.
Dependencies
- Update gl-native to v11.9.0 and common to v24.9.0.
v10.19.0
10.19.0 December 13, 2024
Features ✨ and improvements 🏁
- Publish Mapbox Maps Android artifacts using NDK 27 and support for 16 KB page sizes.
- The new artifacts are available by appending
-ndk27
to the artifact ID (for example,com.mapbox.maps:android-ndk27:10.19.0
).
- The new artifacts are available by appending
Bug fixes 🐞
- Fix rare
android.content.res.Resources$NotFoundException
happening when creating aMapView
. - Fix tile prefetch for GeoJSON sources
Dependencies
- Update gl-native to v10.19.2 and common to v23.11.2.
v11.9.0-rc.1
11.9.0-rc.1 December 10, 2024
Features ✨ and improvements 🏁
- Add
toHsla
expression. - Introduce experimental
Snow
andRain
APIs to show the snow or rain effect on the map. - [compose] Introduce experimental
SnowState
andRainState
APIs to show the snow or rain effect on the map.
Bug fixes 🐞
- Improve character spacing for text offsets.
- Fixed crash on Android API level < 26.
- Do not load vector icons for client-provided sprites.
- Fall back to the feature's original ID when promoteId is an object and the source layer is not specified as a key in the object.
- Fixed crash caused by a repeated command buffer commit call.
Dependencies
- Update gl-native to v11.9.0-rc.1 and common to v24.9.0-rc.1.
v11.8.1
11.8.1 December 03, 2024
Bug fixes 🐞
- Fix map flickering on some Mali and PowerVR GPUs.
Dependencies
- Update gl-native to v11.8.1.
v11.9.0-beta.1
11.9.0-beta.1 November 28, 2024
Breaking changes ⚠️
- Expose experimental Geofencing with
com.mapbox.annotation.MapboxExperimental
. - Move experimental geofencing classes to
com.mapbox.common.geofencing
package fromcom.mapbox.common.experimental.geofencing
. - Make constructor of experimental
GeofencingOptions
,GeofencingEvent
and other geofencing classes holding data private. AssociatedBuilder()
classes should be used instead. - Remove experimental
MapboxMap.queryRenderedFeatures
andMapboxMap.querySourceFeatures
that usedFeaturesetQueryTarget
as an argument.
Features ✨ and improvements 🏁
- Introduce experimental
FillExtrusionLayer.fillExtrusionBaseAlignment
andFillExtrusionLayer.fillExtrusionHeightAlignment
APIs to control the behavior of fill extrusion base over terrain and the behavior of fill extrusion height over terrain respectively. - Introduce experimental
FillLayer.fillZOffset
andFillLayer.fillZOffsetTransition
APIs to specify a uniform elevation in meters and define the transition offillZOffset
respectively. - Adds support for
fillZOffset
inPolygonAnnotation
,PolygonAnnotationManager
,PolygonAnnotationOptions
. - Introduce
BackgroundLayer.backgroundPitchAlignment
API to configure the orientation of background layer. - Introduce
LocationIndicatorLayer.emphasisCircleGlowRange
andLocationIndicatorLayer.emphasisCircleGlowRangeTransition
APIs to control the glow effect of the emphasis circle from the solid start to the fully transparent end and to set the transition options for theemphasisCircleGlowRange
property, respectively. - Introduce
radius
parameter forClickInteraction
andLongClickInteraction
to support an extra area around the interaction. - Add a way to specify options for
Expression.image()
. - Introduce experimental
AnimatableModel
,ModelMaterialPart
,ModelNodePart
APIs to style the 3D location puck's overridable parts. Implementation example. - Introduce
modelRotationExpression
,modelColor
,modelColorExpression
,modelColorMixIntensity
,modelColorMixIntensityExpression
,modelOpacityExpression
onLocationPuck3D
. - Introduce experimental
LocationPuck3D.materialOverrides
andLocationPuck3D.nodeOverrides
API to allow model parts overrides. - Add vector icons support: SDK will now download vector icons and rasterize them locally, which will results in better icon quality for icons resized via icon-size. Changeable colors support: icon expression can now have optional parameter to change named colors described in SVG icons metadata.
- Add support for shadows from elevated structures.
- [compose] Introduce
LocationIndicatorLayerState.emphasisCircleGlowRange
andLocationIndicatorLayerState.emphasisCircleGlowRangeTransition
properties. - [compose] Introduce
FillLayerState.fillZOffset
andFillLayerState.fillZOffsetTransition
properties. - [compose] Introduce
FillExtrusionLayerState.fillExtrusionBaseAlignment
andFillExtrusionLayerState.fillExtrusionHeightAlignment
properties. - [compose] Introduce
BackgroundLayerState.backgroundPitchAlignment
property. - [compose] Adds support for
fillZOffset
inPolygonAnnotationState
,PolygonAnnotationGroupState
. - [compose] Expose
MapViewportState.cameraForCoordinates
method. - [compose] Introduce
radius
parameter for all relevant compose functions for interactions to support an extra area around the interaction.
Bug fixes 🐞
- Fix dark shades caused by corner case light directions when
FillLayer.fillExtrusionEmissiveStrength
is set to high values (closer to 1). - Fix rendering of interleaved SDF and non-SDF icons in the same layer.
- Fix
LineLayer.lineEmissiveStrength
not being applied to patterned lines. - Fix map flickering on some Mali and PowerVR GPUs.
- Fix shader fog computation being incorrectly enabled for landmarks.
- Handle empty payloads for offline resources.
- Encapsulate config expression in assertion expression when expected return type is known.
- Fixes a bug which caused icon shifts in some cases.
- Fix feature state update if layer contains data driven
measureLight
expression. - Fix the owning thread log error prints on legacy
OfflineRegion
creation. - Fix a crash in interpolate expression.
- Resolve usage of
GeoJsonSource.autoMaxZoom
for single feature. - Resolve dotted line issue with very long lines.
- Fix texture gather for shadows not being selected correctly by default.
- Performance improvements for runtime-added images.
- Fix
AndroidDeviceLocationProvider
reporting an error when location permissions are not granted. - Improve exception handling inside Cronet providers when Cronet library failed to load.
Dependencies
- Update gl-native to v11.9.0-beta.1 and common to v24.9.0-beta.1.
Known issues
- Custom (non Mapbox-hosted) sprites could fail to load in some scenarios.
v11.7.3
11.7.3 November 19, 2024
Bug fixes 🐞
- Fix map flickering on some Mali and PowerVR GPUs.
Dependencies
- Update gl-native to v11.7.3.
v11.8.0
11.8.0 November 11, 2024
Breaking changes ⚠️
- Change the signature of experimental
MapboxMap.queryRenderedFeatures(RenderedQueryGeometry, TypedFeaturesetDescriptor, Value?, QueryRenderedFeaturesetFeaturesCallback)
toMapboxMap.queryRenderedFeatures(TypedFeaturesetDescriptor, RenderedQueryGeometry?, Value?, QueryRenderedFeaturesetFeaturesCallback)
.RenderedQueryGeometry
being NULL is equivalent to passing a bounding box encompassing the entire map viewport. - [compose] Change the signature of experimental
MapState.queryRenderedFeatures(RenderedQueryGeometry, TypedFeaturesetDescriptor, Expression?): List
toMapState.queryRenderedFeatures(TypedFeaturesetDescriptor, RenderedQueryGeometry?, Expression?): List
.RenderedQueryGeometry
being NULL is equivalent to passing a bounding box encompassing the entire map viewport.
Features ✨ and improvements 🏁
- Introduce
Style.STANDARD_EXPERIMENTAL
style supporting featuresets and map interactions. Important: this style should not be used in production as the style definition on backend is a subject to change after v11.8.0 stable release! - Introduce fully typed map click and long click interactions working with
Style.STANDARD_EXPERIMENTAL
:standardPoi
,standardPlaceLabels
,standardBuildings
.
- Use Cronet as the default network stack. If Cronet is not available, network stack defaults to OkHttp used in previous versions. More information available here.
- Introduce
OnClusterClickListener
andOnClusterLongClickListener
forCircleAnnotationManager
andPointAnnotationManager
. These callbacks receive the clicked cluster represented by aClusterFeature
. - Introduce experimental
getStyleGlyphURL
/setStyleGlyphURL
functions forMapboxMap
andStyle
. - Make
fill-extrusion-emissive-strength
property data-driven. - Dispatch view annotations update before rendering, so that view annotations and map layers are rendered simultaneously and thus decreasing the view annotations latency when using
ViewAnnotationUpdateMode.MAP_FIXED_DELAY
mode. - Overscale composited tile components in offline.
- Skip rendering landmarks when the camera is inside them.
- Introduce experimental Geofencing API. Implementation examples: SimpleGeofencingActivity.kt and ExtendedGeofencingActivity.kt.
- Introduce experimental
MapView.attribution.getMapAttributionDelegate().extraAttributions
to add custom attributions to the attribution dialog. - [compose] Deprecate all
Annotation
andAnnotationGroup
composables that takeonClick
parameter. Now all annotation interactions could be set with appropriateAnnotationInteractionsState
orAnnotationGroupInteractionsState
stored inAnnotationGroupState
. - [compose] Introduce
AnnotationInteractionsState
andAnnotationGroupInteractionsState
states that allow to set callbacks for annotation interactions viaonClicked()
andonLongClicked()
.PointAnnotationGroupInteractionsState
andCircleAnnotationGroupInteractionsState
also provide ability to set callbacks for interactions with clusters viaonClusterClicked
andonClusterLongClicked
. - [compose] Introduce
remember
(e.g.rememberPolylineAnnotationGroupInteractionsState
andrememberPolylineAnnotationInteractionsState
) composable functions to create, init and remember all types ofAnnotationInteractionsState
andAnnotationGroupInteractionsState
. - [compose] Introduce
<AnnotationType>InteractionsState.isDraggable
/<AnnotationType>GroupInteractionsState.isDraggable
API for all annotation types allowing to drag annotations. CallbacksonDragStarted()
,onDragged()
,onDragFinished()
are added as well. - [compose] Introduce experimental
Attribution(..., geofencingDialog)
compose function to customize Geofencing consent dialog. - Annotate
Bitmap.toMapboxImage()
and related as delicate API due to its native memory allocation. - Use fallback engine if cronet fails to load.
Bug fixes 🐞
- Fix terrain related snapshotter crash.
- Handle empty payloads for offline resources.
- Improve zooming performance on dynamic Standard terrain and optimize terrain re-rendering performance on e.g routeline
line-trim-offset
change. - Respect polygons with holes on querying rendered features.
- Fix self-overlap of line corners when large
line-width
is used. - Adjust conflation intersection test padding to fix disappearing
fill-extrusion
. - Fix TileCover bug with polygon horizontal edges.
- Fix a bug with image dependent paint properties not getting a correct value after image become available.
- Clear tile pyramid on color theme change before the tiles are updated.
- Fix missing images notifications for images within coalesce expression when other images in coalesce are present. Image expressions with two arguments are no longer being considered present if only second image is present.
- Return operation error for featurestate related API in case the featureset is not valid.
- Fix crash on style pack load when no access token is set.
- Fix crash in TerrainRenderer when using snapshotter.
- Fix crash on re-creation of a custom raster source when different options are provided.
- Return parsing errors if runtime added style import JSON is not valid.
- Fix missing models in rendering result if
reduceMemoryUse
is called before taking snapshot. - Fix the incorrect behaviour when using
symbol-z-oder
property. - Fix
raster-particle
trail discontinuity at the antimeridian. - Fix an Android 12 specific bug where location puck custom animator options lambda without explicit
ValueAnimator.duration
resulted induration = 0
. - Fix a rare
android.content.res.Resources$NotFoundException
happening when creating aMapView
. - Fix a rare
NullPointerException
happening when fling gesture event is recognized. - Fix
StandardPoiFeature.geometry
to have a concretePoint
type instead ofGeometry
interface. - Fix a bug in
GeoJsonSource.autoMaxZoom
leading to rendering artifacts with long dotted line layers. - Fix a crash if Cronet failed to init on device by fallbacking to OkHttp.
- Disable false-positive lint error "Incorrect number of expressions".
- Fix possible out of memory in native heap during annotation manager annotation updates (
AnnotationManager.update(...)
). - Fix CronetProviderInstaller proguard missing rule.
- Fix rare crash due to native library not loaded when receiving background locations.
- Do not modify file description structure when reading resource files.
- Fix lifecycle calculation in case activity destruction is in progress.
Dependencies
- Update gl-native to v11.8.0 and common to v24.8.0.
v11.7.2
v11.8.0-rc.1
11.8.0-rc.1 October 23, 2024
Bug fixes 🐞
- Fix an Android 12 specific bug where location puck custom animator options lambda without explicit
ValueAnimator.duration
resulted induration = 0
. - Fix a rare
android.content.res.Resources$NotFoundException
happening when creating aMapView
. - Fix a rare
NullPointerException
happening when fling gesture event is recognized. - Fix
StandardPoiFeature.geometry
to have a concretePoint
type instead ofGeometry
interface. - Fix a bug in
GeoJsonSource.autoMaxZoom
leading to rendering artifacts with long dotted line layers. - Fix a crash if Cronet failed to init on device by fallbacking to OkHttp.
Dependencies
- Update gl-native to v11.8.0-rc.1 and common to v24.8.0-rc.1.
v11.8.0-beta.1
11.8.0-beta.1 October 14, 2024
Features ✨ and improvements 🏁
- Introduce
Style.STANDARD_EXPERIMENTAL
style supporting featuresets and map interactions. Important: this style should not be used in production as the style definition on backend is a subject to change after v11.8.0 stable release! - Introduce fully typed map click and long click interactions working with
Style.STANDARD_EXPERIMENTAL
:standardPoi
,standardPlaceLabels
,standardBuildings
.
- Use Cronet as the default network stack. If Cronet is not available, network stack defaults to OkHttp used in previous versions. More information available here.
- Introduce
OnClusterClickListener
andOnClusterLongClickListener
forCircleAnnotationManager
andPointAnnotationManager
. These callbacks receive the clicked cluster represented by aClusterFeature
. - Introduce experimental
getStyleGlyphURL
/setStyleGlyphURL
functions forMapboxMap
andStyle
. - Make
fill-extrusion-emissive-strength
property data-driven. - Dispatch view annotations update before rendering, so that view annotations and map layers are rendered simultaneously and thus decreasing the view annotations latency when using
ViewAnnotationUpdateMode.MAP_FIXED_DELAY
mode. - Overscale composited tile components in offline.
- Skip rendering landmarks when the camera is inside them.
- Introduce experimental Geofencing API. Implementation example: GeofencingActivity.kt
- [compose] Deprecate all
Annotation
andAnnotationGroup
composables that takeonClick
parameter. Now all annotation interactions could be set with appropriateAnnotationInteractionsState
orAnnotationGroupInteractionsState
stored inAnnotationGroupState
. - [compose] Introduce
AnnotationInteractionsState
andAnnotationGroupInteractionsState
states that allow to set callbacks for annotation interactions viaonClicked()
andonLongClicked()
.PointAnnotationGroupInteractionsState
andCircleAnnotationGroupInteractionsState
also provide ability to set callbacks for interactions with clusters viaonClusterClicked
andonClusterLongClicked
. - [compose] Introduce
remember
(e.g.rememberPolylineAnnotationGroupInteractionsState
andrememberPolylineAnnotationInteractionsState
) composable functions to create, init and remember all types ofAnnotationInteractionsState
andAnnotationGroupInteractionsState
. - [compose] Introduce
<AnnotationType>InteractionsState.isDraggable
/<AnnotationType>GroupInteractionsState.isDraggable
API for all annotation types allowing to drag annotations. CallbacksonDragStarted()
,onDragged()
,onDragFinished()
are added as well. - [compose] Introduce experimental
Attribution(..., geofencingDialog)
compose function to customize Geofencing consent dialog. - Introduce experimental
MapView.attribution..getMapAttributionDelegate().extraAttributions
to add custom attributions to the attribution dialog.
Bug fixes 🐞
- Improve zooming performance on dynamic Standard terrain and optimize terrain re-rendering performance on e.g routeline
line-trim-offset
change. - Respect polygons with holes on querying rendered features.
- Fix self-overlap of line corners when large
line-width
is used. - Adjust conflation intersection test padding to fix disappearing
fill-extrusion
. - Fix TileCover bug with polygon horizontal edges.
- Fix a bug with image dependent paint properties not getting a correct value after image become available.
- Clear tile pyramid on color theme change before the tiles are updated.
- Fix missing images notifications for images within coalesce expression when other images in coalesce are present. Image expressions with two arguments are no longer being considered present if only second image is present.
- Return operation error for featurestate related API in case the featureset is not valid.
- Fix crash on style pack load when no access token is set.
- Fix crash in TerrainRenderer when using snapshotter.
- Fix crash on re-creation of a custom raster source when different options are provided.
- Return parsing errors if runtime added style import JSON is not valid.
- Fix missing models in rendering result if
reduceMemoryUse
is called before taking snapshot. - Fix the incorrect behaviour when using
symbol-z-oder
property. - Fix
raster-particle
trail discontinuity at the antimeridian.
Dependencies
- Update gl-native to v11.8.0-beta.1 and common to v24.8.0-beta.1.