Releases: mapbox/mapbox-maps-android
Releases · mapbox/mapbox-maps-android
v10.16.0
10.16.0 September 06, 2023
Features ✨ and improvements 🏁
- Add Mapbox Privacy Policy to attribution links.
Bug fixes 🐞
- Fix map not being rendered when EGL exception happens but Android surface is still valid.
- Fix terrain rendering for the Terrarium-encoded tiles.
- Fixes an issue that causes view annotations to be placed on the sky when high pitch and mercator projection is used.
- Don't emit
MapLoadingError
if an offline tilepack has no tiles. - Fix the bug when anchor was not reset after gestures leading to an unexpected map camera animation result with incorrect
CameraState.center
. - Avoid excessive relayout of the symbol layer when no properties depend on the image changes. This fix eliminates the symbol layer flickering when styles are switched.
- Fix a rounding error when point lies at the edge of the screen by using
rountToInt
for limitingMapboxMap#pixelsForCoordinates
to the bounds of MapView. - Fix NPE when animating edge insets types (e.g. map padding).
Dependencies
- Update gl-native to v10.16.0 and common to v23.8.0.
v11.0.0-beta.2
11.0.0-beta.2 August 24, 2023
Breaking changes ⚠️
- Replace style related enum classes with regular classes.
- Migrate from
android.app.AlertDialog
toandroidx.appcompat.app.AlertDialog
for attribution plugin. - Rename
MapboxMap.subscribeStyleImageUnused
toMapboxMap.subscribeStyleImageRemoveUnused
.
Features ✨ and improvements 🏁
- Introduce experimental
MapboxMapRecorder
allowing to record and replay custom scenarios. - New compose example
MulitDisplayActiviy
ported from XML test app. - Add Mapbox Privacy Policy to attribution links.
Bug fixes 🐞
- Fix the bug when anchor was not reset after gestures leading to an unexpected map camera animation result with incorrect
CameraState.center
. - Fix a rounding error when point lies at the edge of the screen by using
rountToInt
for limitingMapboxMap.pixelsForCoordinates
to the bounds of MapView. - Fix the bug when
MapboxMap.getStyle
returned NULL ifMapboxMap.subscribeStyleLoaded
called beforeMapboxMap.loadStyle
. - Fix NPE when animating edge insets types (e.g. map padding).
- Reduce segment overlap in flood lighting to improve rendering performance.
- Enable offline support for the Standard style.
- Add wireframe rendering debug feature
MapDebugOptions.LAYERS3_DWIREFRAME
andMapDebugOptions.LAYERS2_DWIREFRAME
.
Dependencies
Update dependencies:
Dependency | Before | After |
---|---|---|
NDK | 21.4.7075529 | 23.2.8568313 |
gl-native | 11.0.0-beta.2 | 11.0.0-beta.3 |
common | 24.0.0-beta.2 | 24.0.0-beta.3 |
v10.16.0-rc.1
10.16.0-rc.1 August 24, 2023
Features ✨ and improvements 🏁
- Add Mapbox Privacy Policy to attribution links.
Bug fixes 🐞
- Fix a rounding error when point lies at the edge of the screen by using
rountToInt
for limitingMapboxMap#pixelsForCoordinates
to the bounds of MapView. - Fix NPE when animating edge insets types (e.g. map padding).
- Don't emit
MapLoadingError
if an offline tilepack has no tiles.
Dependencies
- Update gl-native to v10.16.0-rc.2 and common to v23.8.0-rc.2.
v10.15.1
10.15.1 August 24, 2023
Bug fixes 🐞
- Fix NPE when animating edge insets types (e.g. map padding).
v10.16.0-beta.1
10.16.0-beta.1 August 10, 2023
Bug fixes 🐞
- Fix the bug when anchor was not reset after gestures leading to an unexpected map camera animation result with incorrect
CameraState.center
. - Avoid excessive relayout of the symbol layer when no properties depend on the image changes. This fix eliminates the symbol layer flickering when styles are switched.
Dependencies
- Update gl-native to v10.16.0-beta.1 and common to v23.8.0-beta.1.
extension-compose-v0.1.0
0.1.0 August 10, 2023
Features ✨ and improvements 🏁
- Add experimental
MapboxMap
composable function as the entry point to inject a MapboxMap to the app. - Add experimental
MapEffect
to expose the rawMapView
controller, so that user can use it to access the full
Maps SDK API surface. - Add experimental plugin settings classes(i.e.
AttributionSettings
,CompassSettings
,GesturesSettings
,LocationComponentSettings
,LogoSettings
,ScaleBarSettings
) as the input state
ofMapboxMap
composable function. - Add experimental
PointAnnotation
,CircleAnnotation
,PolylineAnnotation
andPolygonAnnotation
composable
functions to add an annotation to the map. - Add experimental
PointAnnotationGroup
,CircleAnnotationGroup
,PolylineAnnotationGroup
and
PolygonAnnotationGroup
composable functions to add an annotation group to the
map;PointAnnotationGroup
andCircleAnnotationGroup
can be clustered based on configuration. - Add experimental
ViewAnnotation
composable function to add a view annotation to the map. - Add experimental
MapViewportState
API hat can be hoisted to control and observe the map's camera state.
v11.0.0-beta.1
11.0.0-beta.1 August 2, 2023
Breaking changes ⚠️
- Remove deprecated
GeoJsonSource
public constructor, builder should be used instead. - Remove deprecated
MapboxMap.queryRenderedFeatures
methods. - Remove
Snapshotter.setTileMode
,Snapshotter.isInTileMode
methods. - Remove deprecated
MapStyleStateDelegate
andisFullyLoaded
method. - Remove experimental
setRenderCacheOptions
,getRenderCacheOptions
apis. - Update SDK's
targetSdkVersion
andcompileSdkVersion
to 33. - Add
callback
argument to theMapboxMap
methodsgetFeatureState
,setFeatureState
,removeFeatureState
. - Use different callback types for the
MapboxMap.queryRenderedFeatures
and theMapboxMap.querySourceFeatures
methods. - Return
cancelable
from theMapboxMap
methods :getFeatureState
,setFeatureState
,removeFeatureState
,querySourceFeatures
,getGeoJsonClusterLeaves
,getGeoJsonClusterChildren
,getGeoJsonClusterExpansionZoom
. - Remove the deprecated
MapboxMap.queryFeatureExtensions
method. - Remove
MapAnimationOptions.animatorListener
property. In order to subscribe to animations, provideAnimator.animatorListener
withflyTo
,easeTo
,pitchBy
,scaleBy
,moveBy
,rotateBy
apis. - Replace
LocationEngine
use withLocationService
inDefaultProvider
. - Add new
LocationConsumer.onError
method to allow consumers handle location errors. - Remove
MapView#location2
related interfaces and moveshowAccuracyRing
,accuracyRingColor
,accuracyRingBorderColor
,puckBearingEnabled
andpuckBearingSource
toMapView#location
. - Make
AttributionSettings
,CompassSettings
,GesturesSettings
,LocationComponentSettings
,LogoSettings
,ScaleBarSettings
not Kotlindata class
, better binary compatible and implementingParcelable
. - Change
CompassSettings#image
,LocationPuck2D#topImage
,LocationPuck2D#bearingImage
,LocationPuck2D#shadowImage
toImageHolder
allowing to pass either drawable id orBitmap
. - Remove deprecated
backgroundPatternTransition
,lineDasharrayTransition
,linePatternTransition
,fillPatternTransition
properties. - Replace
MapSnapshotInterface
interface withMapSnapshotResult
abstract class and removeimage()
method,bitmap()
should be used instead. - Change
Annotation.id
from monotonically increasingLong
to UUID represented asString
. - Remove
Annotation.featureIdentifier
used to connect with View Annotations, nowAnnotation.id
should be used instead. - Rename
PuckBearingSource
toPuckBearing
in location component plugin. - Remove deprecated overloaded
Style.setStyleGeoJSONSourceData(sourceId: String, data: GeoJSONSourceData)
method. - Rename
MapboxMap.setMemoryBudget
toMapboxMap.setTileCacheBudget
and make it non-experimental. - Update Mapbox styles to latest versions.
- Remove
ResourceOptions
andResourceOptionsManager
. IntroduceMapboxOptions
andMapboxMapsOptions
to handle application-level access token and other generic options. - Removed XML attributes
mapbox_resourcesAccessToken
andmapbox_resourcesBaseUrl
.
Style | Before | After |
---|---|---|
MAPBOX_STREETS | mapbox://styles/mapbox/streets-v11 | mapbox://styles/mapbox/streets-v12 |
SATELLITE_STREETS | mapbox://styles/mapbox/satellite-streets-v11 | mapbox://styles/mapbox/satellite-streets-v12 |
OUTDOORS | mapbox://styles/mapbox/outdoors-v11 | mapbox://styles/mapbox/outdoors-v12 |
LIGHT | mapbox://styles/mapbox/light-v10 | mapbox://styles/mapbox/light-v11 |
DARK | mapbox://styles/mapbox/dark-v10 | mapbox://styles/mapbox/dark-v11 |
- Remove native interfaces
StyleManagerInterface
,StyleInterface
,CameraManagerInterface
,MapInterface
,ObservableInterface
and use onlyMap
object to access native methods. - Make map events typed-safe, events are now have their own subscription methods.
Following events are added as typed-safe,CameraChanged
,MapIdle
,MapLoadingError
,MapLoaded
,StyleDataLoaded
,StyleLoaded
,StyleImageMissing
,StyleImageRemovedUnunsed
,
RenderFrameStarted
,RenderFrameFinished
,SourceAdded
,SourceDataLoaded
,SourceRemoved
,ReourceRequest
.
Allsubscribe
methods returnCancelable
object, which users could store and callcancel
when subscription is no longer needed.
MapboxMap.unsubscribe
methods were removed. - Rename
LocationConsumer.onAccuracyRadiusUpdated
toonHorizontalAccuracyRadiusUpdated
. - Deprecate
MapboxMap.loadStyleUri
,MapboxMap.loadStyleJson
andMapboxMap.loadStyle
methods and introduce oneMapboxMap.loadStyle
accepting either URI / JSON or Style DSL block. - Replace
com.mapbox.maps.plugin.animation.Cancelable
withcom.mapbox.common.Cancelable
. - Remove
TileStoreOptions.MAPBOX_ACCESS_TOKEN
used e.g. inTileStore.setOption(TileStoreOptions.MAPBOX_ACCESS_TOKEN, someDomain, someValue)
as it has become redundant. - Introduce
MapboxTracing
object allowing to enable Android traces to measure performance of the SDK. More details and instructions could be found inWorking with traces
section inDEVELOPING.md
. - Remove Mapbox plugin implementations from public API surface.
- Remove
HttpServiceFactory.getInstance
,HttpServiceFactory.reset
,HttpServiceFactory.setUserDefined
methods. - Replace
HttpServiceFactory.getInstance().setInterceptor
withHttpServiceFactory.setHttpServiceInterceptor
. - Argument
dataId
of theGeoJson.feature
,GeoJson.featureCollection
,GeoJson.geometry
,GeoJson.url
,GeoJson.data
became non-nullable. - Remove
Style.getStyleSourcesAttribution
.MapboxMap.getAttributions
should be used instead.
Features ✨ and improvements 🏁
- Add clustering support for CircleAnnotationManager.
- Update Kotlin version to v1.7.20 and compose compiler version to 1.3.2.
- Improve ergonomics of
Snapshotter.start
method to align with iOS and allow to re-useCanvas
for user drawing. - Add
MapboxMap.coordinateBoundsForRect
returningCoordinateBounds
for givenRectF
of screen coordinates. - Add optional
maxZoom
andoffset
parameters toMapboxMap.cameraForCoordinateBounds
. - Mark
GeoJsonSource.url
/GeoJsonSource.Builder.url
methods as deprecated,GeoJsonSource.data
/GeoJsonSource.Builder.data
should be used instead. - Refactor style Light APIs: introduce
AmbientLight
,DirectionalLight
,FlatLight
and methods to set them to style. - Expose new APIs to import and configure styles:
getStyleImports
,removeStyleImport
,getStyleImportSchema
,getStyleImportConfigProperties
,setStyleImportConfigProperties
,getStyleImportConfigProperty
,setStyleImportConfigProperty
- Expose
slot
property for allLayer
s to link layers from imported styles. - Add expression support for visibility layer property.
- Add the
MapboxMap.resetFeatureState
method. - Make padding optional for
MapboxMap.cameraForCoordinateBounds
,MapboxMap.cameraForCoordinates
,MapboxMap.cameraForGeometry
methods. - Add
FreeCameraOptions.getLocation
andFreeCameraOptions.getAltitude
methods. - Add
MapboxMap.coordinatesForRect(rectF: RectF)
to support rectangle parameters. - Add
suspend
variants for the asyncMapboxMap
functions :queryRenderedFeatures
,querySourceFeatures
,setFeatureState
,getFeatureState
,removeFeatureState
,getGeoJsonClusterLeaves
,getGeoJsonClusterChildren
,getGeoJsonClusterExpansionZoom
. - Add
MapboxMap.mapLoadedEvents
,MapboxMap.mapLoadingErrorEvents
,MapboxMap.styleLoadedEvents
,MapboxMap.styleDataLoadedEvents
,MapboxMap.cameraChangedEvents
,MapboxMap.mapIdleEvents
,MapboxMap.sourceAddedEvents
,MapboxMap.sourceRemovedEvents
,MapboxMap.sourceDataLoadedEvents
,MapboxMap.styleImageMissingEvents
,MapboxMap.styleImageRemoveUnusedEvents
,MapboxMap.renderFrameStartedEvents
,MapboxMap.renderFrameFinishedEvents
,MapboxMap.resourceRequestEvents
returning Flow of events. - Introduce custom lint rules to check illegal usage of literals in Expression DSL and suggest auto fix.
- Introduce custom lint rules to check illegal number of arguments within given Expression DSL.
- Introduce custom lint rules to check unused layer/source/light/terrain/atmosphere/projection objects in the Style DSL, and suggest auto fix to add it to the style using unaryPlus(+) operator.
- Improve performance for
Snapshotter
when obtaining the bitmap. - Add
ImageSource.updateImage(Bitmap)
method. - Introduce Expression overload functions
linearInterpolator
,exponentialInterpolator
,cubicBezierInterpolator
,step
,match
andswitchCase
to construct these expressions with strongly typed parameters. - Introduce
ImageExtensionImpl.Builder(imageId, image)
,ImageExtensionImpl.Builder(imageId, image)
constructors and deprecatedImageExtensionImpl.Builder(imageId)
,ImageExtensionImpl.Builder.image(image)
,ImageExtensionImpl.Builder.bitmap(bitmap)
, as image/bitmap is required forImageExtensionImpl.Builder
; DSL functions are updated to reflect these changes as well. - Deprecate
PointAnnotationManager.iconTextFit
andPointAnnotationManager.iconTextFitPadding
in favor ofPointAnnotation.iconTextFit
andPointAnnotation.iconTextFitPadding
. - Introduce experimental lights API to enable a uniform 3D lighting across the map. Use
Style.addLights3D
orStyle.setup3DLights
to enableAmbient
andDirectional
light. - Introduce
LineLayer.lineDepthOcclusionFactor
, `PolylineAnnotation...
v10.15.0
10.15.0 July 27, 2023
Bug fixes 🐞
- Fix a security exception when fine location permission is not granted when using
DefaultLocationProvider
. - Fix camera animations jitter noticeable on high zoom levels using location puck following mode.
- Fix view port not following puck if viewport
bearing
option was set tonull
even though new locations were available. - Fix the issue of tiles displaying redundant images during a style switch, when both styles include similarly named sprites.
- Fix crash in offline download when no-content responses are received.
- Fix the issue of rendering sky layers behind the globe when the atmosphere is disabled.
- Resolve the issue with tile rendering when the tile pack's levelling scheme has a maximum zoom level of less than 16, and the camera zoom surpasses the maximum zoom value defined by the tile pack's levelling scheme.
- Fix the HTTP resources expiration time being reset when the Expires header defined the expiration time and the Cache-Control header was present but did not define the expiration time.
- Fix the latency during the style switch of fill extrusion layers that have data-driven paint properties.
- Fix a rounding error when point lies at the edge of the screen by using
rountToInt
for limitingMapboxMap#pixelForCoordinate
to the bounds of MapView.
Dependencies
- Update gl-native to v10.15.0 and common to v23.7.0.
v10.15.0-rc.1
10.15.0-rc.1 July 13, 2023
Bug fixes 🐞
- Fix view port not following puck if viewport
bearing
option was set tonull
even though new locations were available. - Fix the issue of tiles displaying redundant images during a style switch, when both styles include similarly named sprites.
- Fix crash in offline download when no-content responses are received.
- Fix the issue of rendering sky layers behind the globe when the atmosphere is disabled.
Dependencies
- Update gl-native to v10.15.0-rc.1 and common to v23.7.0-rc.1.
v10.15.0-beta.1
10.15.0-beta.1 June 29, 2023
Bug fixes 🐞
- Fix a security exception when fine location permission is not granted when using DefaultLocationProvider.
- Fix camera animations jitter noticeable on high zoom levels using location puck following mode.
- Resolve the missing tile rendering issue when the tile pack's leveling scheme has a maximum zoom level of less than 16.
- Fix the issue that HTTP resources expiration time being incorrectly reset, which caused excessive network requests.
- Fix the style change latency for fill extrusion layers(in case the layers have data-driven paint properties) during the style switches.
Dependencies
- Update gl-native to v10.15.0-beta.1 and common to v23.7.0-beta.1.