Skip to content

Releases: mapbox/mapbox-maps-android

v10.16.0

06 Sep 11:32
Compare
Choose a tag to compare

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 limiting MapboxMap#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

24 Aug 08:02
Compare
Choose a tag to compare
v11.0.0-beta.2 Pre-release
Pre-release

11.0.0-beta.2 August 24, 2023

Breaking changes ⚠️

  • Replace style related enum classes with regular classes.
  • Migrate from android.app.AlertDialog to androidx.appcompat.app.AlertDialog for attribution plugin.
  • Rename MapboxMap.subscribeStyleImageUnused to MapboxMap.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 limiting MapboxMap.pixelsForCoordinates to the bounds of MapView.
  • Fix the bug when MapboxMap.getStyle returned NULL if MapboxMap.subscribeStyleLoaded called before MapboxMap.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 and MapDebugOptions.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

24 Aug 08:53
Compare
Choose a tag to compare
v10.16.0-rc.1 Pre-release
Pre-release

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 limiting MapboxMap#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

24 Aug 10:03
Compare
Choose a tag to compare

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 Aug 12:33
Compare
Choose a tag to compare
v10.16.0-beta.1 Pre-release
Pre-release

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

11 Aug 13:52
Compare
Choose a tag to compare
Pre-release

0.1.0 August 10, 2023

⚠️ Please refer to our user guide for more info.

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 raw MapView 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
    of MapboxMap composable function.
  • Add experimental PointAnnotation, CircleAnnotation, PolylineAnnotation and PolygonAnnotation composable
    functions to add an annotation to the map.
  • Add experimental PointAnnotationGroup, CircleAnnotationGroup, PolylineAnnotationGroupand
    PolygonAnnotationGroup composable functions to add an annotation group to the
    map; PointAnnotationGroup and CircleAnnotationGroup 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

02 Aug 11:33
Compare
Choose a tag to compare
v11.0.0-beta.1 Pre-release
Pre-release

11.0.0-beta.1 August 2, 2023

⚠️ More info on migrating from v10 to v11 can be found here: Mapbox Maps v11 Migration Guide.

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 and isFullyLoaded method.
  • Remove experimental setRenderCacheOptions, getRenderCacheOptions apis.
  • Update SDK's targetSdkVersion and compileSdkVersion to 33.
  • Add callback argument to the MapboxMap methods getFeatureState, setFeatureState, removeFeatureState.
  • Use different callback types for the MapboxMap.queryRenderedFeatures and the MapboxMap.querySourceFeatures methods.
  • Return cancelable from the MapboxMap methods : getFeatureState, setFeatureState, removeFeatureState, querySourceFeatures, getGeoJsonClusterLeaves, getGeoJsonClusterChildren, getGeoJsonClusterExpansionZoom.
  • Remove the deprecated MapboxMap.queryFeatureExtensions method.
  • Remove MapAnimationOptions.animatorListener property. In order to subscribe to animations, provide Animator.animatorListener with flyTo, easeTo, pitchBy, scaleBy, moveBy, rotateBy apis.
  • Replace LocationEngine use with LocationService in DefaultProvider.
  • Add new LocationConsumer.onError method to allow consumers handle location errors.
  • Remove MapView#location2 related interfaces and move showAccuracyRing, accuracyRingColor, accuracyRingBorderColor, puckBearingEnabled and puckBearingSource to MapView#location.
  • Make AttributionSettings, CompassSettings, GesturesSettings, LocationComponentSettings, LogoSettings, ScaleBarSettings not Kotlin data class, better binary compatible and implementing Parcelable.
  • Change CompassSettings#image, LocationPuck2D#topImage, LocationPuck2D#bearingImage, LocationPuck2D#shadowImage to ImageHolder allowing to pass either drawable id or Bitmap.
  • Remove deprecated backgroundPatternTransition, lineDasharrayTransition, linePatternTransition, fillPatternTransition properties.
  • Replace MapSnapshotInterface interface with MapSnapshotResult abstract class and remove image() method, bitmap() should be used instead.
  • Change Annotation.id from monotonically increasing Long to UUID represented as String.
  • Remove Annotation.featureIdentifier used to connect with View Annotations, now Annotation.id should be used instead.
  • Rename PuckBearingSource to PuckBearing in location component plugin.
  • Remove deprecated overloaded Style.setStyleGeoJSONSourceData(sourceId: String, data: GeoJSONSourceData) method.
  • Rename MapboxMap.setMemoryBudget to MapboxMap.setTileCacheBudget and make it non-experimental.
  • Update Mapbox styles to latest versions.
  • Remove ResourceOptions and ResourceOptionsManager. Introduce MapboxOptions and MapboxMapsOptions to handle application-level access token and other generic options.
  • Removed XML attributes mapbox_resourcesAccessToken and mapbox_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 only Map 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.
    All subscribe methods return Cancelable object, which users could store and call cancel when subscription is no longer needed.
    MapboxMap.unsubscribe methods were removed.
  • Rename LocationConsumer.onAccuracyRadiusUpdated to onHorizontalAccuracyRadiusUpdated.
  • Deprecate MapboxMap.loadStyleUri, MapboxMap.loadStyleJson and MapboxMap.loadStyle methods and introduce one MapboxMap.loadStyle accepting either URI / JSON or Style DSL block.
  • Replace com.mapbox.maps.plugin.animation.Cancelable with com.mapbox.common.Cancelable.
  • Remove TileStoreOptions.MAPBOX_ACCESS_TOKEN used e.g. in TileStore.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 in Working with traces section in DEVELOPING.md.
  • Remove Mapbox plugin implementations from public API surface.
  • Remove HttpServiceFactory.getInstance, HttpServiceFactory.reset, HttpServiceFactory.setUserDefined methods.
  • Replace HttpServiceFactory.getInstance().setInterceptor with HttpServiceFactory.setHttpServiceInterceptor.
  • Argument dataId of the GeoJson.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-use Canvas for user drawing.
  • Add MapboxMap.coordinateBoundsForRect returning CoordinateBounds for given RectF of screen coordinates.
  • Add optional maxZoom and offset parameters to MapboxMap.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 all Layers 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 and FreeCameraOptions.getAltitude methods.
  • Add MapboxMap.coordinatesForRect(rectF: RectF) to support rectangle parameters.
  • Add suspend variants for the async MapboxMap 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 and switchCase to construct these expressions with strongly typed parameters.
  • Introduce ImageExtensionImpl.Builder(imageId, image), ImageExtensionImpl.Builder(imageId, image) constructors and deprecated ImageExtensionImpl.Builder(imageId), ImageExtensionImpl.Builder.image(image), ImageExtensionImpl.Builder.bitmap(bitmap), as image/bitmap is required for ImageExtensionImpl.Builder; DSL functions are updated to reflect these changes as well.
  • Deprecate PointAnnotationManager.iconTextFit and PointAnnotationManager.iconTextFitPadding in favor of PointAnnotation.iconTextFit and PointAnnotation.iconTextFitPadding.
  • Introduce experimental lights API to enable a uniform 3D lighting across the map. Use Style.addLights3D or Style.setup3DLights to enable Ambient and Directional light.
  • Introduce LineLayer.lineDepthOcclusionFactor, `PolylineAnnotation...
Read more

v10.15.0

27 Jul 12:06
Compare
Choose a tag to compare

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 to null 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 limiting MapboxMap#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

13 Jul 15:27
Compare
Choose a tag to compare
v10.15.0-rc.1 Pre-release
Pre-release

10.15.0-rc.1 July 13, 2023

Bug fixes 🐞

  • Fix view port not following puck if viewport bearing option was set to null 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

29 Jun 13:43
Compare
Choose a tag to compare
v10.15.0-beta.1 Pre-release
Pre-release

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.