Skip to content

Releases: mapbox/mapbox-maps-android

v11.2.0

29 Feb 09:31
Compare
Choose a tag to compare

11.2.0 February 29, 2024

Features ✨ and improvements 🏁

  • Introduce better way of SDK initialization to avoid java.lang.UnsatisfiedLinkError exception on process startup. If the native library is still not found when actual Mapbox API is called, meaningful MapboxInitializerException is thrown and could be caught and processed on user's side.
  • Introduce MapboxMap.getCenterAltitudeMode API.
  • Add useShortestPath option to CameraAnimationPlugin.createCenterAnimator, when enabled, shortest path will be applied when the start and end camera center is across the antimeridian, for example from -170 to 170 longitude. Defaults to true.
  • Introduce SymbolLayer.iconColorSaturation API.
  • Introduce experimental RasterLayer.rasterElevation API.
  • Introduce experimental MapboxMap.startPerformanceStatisticsCollection / MapboxMap.stopPerformanceStatisticsCollection APIs allowing to start / stop collecting map rendering performance statistics.
  • Introduce GeoJsonSource.tileCacheBudget, RasterSource.tileCacheBudget, RasterDemSource.tileCacheBudget, RasterArraySource.tileCacheBudget, VectorSource.tileCacheBudget, CustomGeometrySource.tileCacheBudget, CustomRasterSource.tileCacheBudget.
  • Skip unneeded layers properties re-evaluation on zoom change.
  • Add the possibility to use constant expressions for model-emissive-strength when rendering 3D model layers using 2D sources.
  • Introduce static HttpServiceFactory.setMaxRequestsPerHost API.
  • TileStoreOptions.DiskQuota is now an abort threshold for tilestore size. When we have more than this amount of bytes stored, new downloads will fail. Tilestore starts to evict tiles with closest expiration date 50Mb (or 10% of DiskQuota, whatever is smaller) before this abort threshold is reached.
  • Speedup preparing tiled sources for rendering.
  • Uploading model resources to GPU in continuous map mode is now limited by fixed time per frame.
  • Modify FillExtrusionLayer.fillExtrusionCutoffFadeRange to scale down and remove buildings in a staggered fashion, instead of fading opacity.
  • [compose] Introduce DisposableMapEffect API.
  • [compose] Add default value for MapViewportState.transitionToFollowPuckState.followPuckViewportStateOptions.

Bug fixes 🐞

  • Retain previous CenterAltitudeMode after gestures are finished.
  • Avoid marking whole LayerDsl as experimental when only a part of the layer properties are experimental.
  • Fix R8 error due to missing class com.tobrun.datacompat.annotation.Default.
  • EaseTo and MoveBy camera animation and DefaultViewportTransition now will use shortest path when the start and end camera center is across the antimeridian, for example from -170 to 170 longitude.
  • Remove extra image padding from text shaping offset.
  • Address crashes on certain Android devices by disabling the texture pool.
  • Fix elevated rasters with coordinates not aligned to the longitude/latitude grid.
  • Fix a bug that was causing absence of MapLoaded event and never ending background task processing.
  • Fix a bug that heatmap layer wasn't updating visuals after feature state change.
  • Fix a bug where scientific notation is not supported when parse JSON numbers to Value.
  • Fix a crash occurring when clicking on the "Telemetry settings" option in the attribution dialog when not using the AppCompat theme.
  • Fix ModelLayer.modelCutoffFadeRange calculation on low zoom levels.
  • Fix RasterArray rendering on Android.
  • Fix rare null pointer dereference crash.
  • Fix a bug with disappearing models during light changes.
  • Fix rendering artifacts on long fill outlines on pitched map view.
  • Fix style parsing when the style and import's urls are both empty.
  • Fix config expression evaluation if the expected type is formatted but the actual value is string.
  • Fix not taking line-trim-offset into account for Dynamic View Annotation placement.
  • Fix issue that View Annotation stays visible when the associated layer's visibility is none.
  • Fix camera framing on globe with padding.
  • [compose] Fix a warning that using UI composable where Mapbox Map composable is expected.
  • [compose] Fix losing some location component settings during wrapping.

Dependencies

v10.16.5

22 Feb 12:31
Compare
Choose a tag to compare

10.16.5 February 22, 2024

Features ✨ and improvements 🏁

  • Introduce better way (compared to v10.16.3) of dealing with java.lang.UnsatisfiedLinkError exception happening on the startup.

Bug fixes 🐞

  • Address crashes on certain Android devices by disabling the texture pool.
  • Fix snapshotter race conditions to ensure new request could effectively trigger map rendering.

Dependencies

  • Update gl-native to v10.16.5 and common to v23.9.0.

v11.2.0-rc.1

15 Feb 12:42
Compare
Choose a tag to compare
v11.2.0-rc.1 Pre-release
Pre-release

11.2.0-rc.1 February 15, 2024

Features ✨ and improvements 🏁

  • [compose] Introduce DisposableMapEffect API.
  • Speedup preparing tiled sources for rendering.
  • Uploading model resources to GPU in continuous map mode is now limited by fixed time per frame.
  • Modify FillExtrusionLayer.fillExtrusionCutoffFadeRange to scale down and remove buildings in a staggered fashion, instead of fading opacity.

Bug fixes 🐞

  • [compose] Fix a warning that using UI composable where Mapbox Map composable is expected.
  • Fix a crash occurring when clicking on the "Telemetry settings" option in the attribution dialog when not using the AppCompat theme.
  • Fix ModelLayer.modelCutoffFadeRange calculation on low zoom levels.
  • Fix RasterArray rendering on Android.
  • Fix rare null pointer dereference crash.

Dependencies

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

v11.2.0-beta.1

01 Feb 13:05
Compare
Choose a tag to compare
v11.2.0-beta.1 Pre-release
Pre-release

11.2.0-beta.1 February 01, 2024

Features ✨ and improvements 🏁

  • Introduce better way of SDK initialization to avoid java.lang.UnsatisfiedLinkError exception on process startup. If the native library is still not found when actual Mapbox API is called, meaningful MapboxInitializerException is thrown and could be caught and processed on user's side.
  • Introduce MapboxMap.getCenterAltitudeMode API.
  • Add useShortestPath option to CameraAnimationPlugin.createCenterAnimator, when enabled, shortest path will be applied when the start and end camera center is across the antimeridian, for example from -170 to 170 longitude. Defaults to true.
  • Introduce SymbolLayer.iconColorSaturation API.
  • Introduce experimental RasterLayer.rasterElevation API.
  • Introduce experimental MapboxMap.startPerformanceStatisticsCollection / MapboxMap.stopPerformanceStatisticsCollection APIs allowing to start / stop collecting map rendering performance statistics.
  • Introduce GeoJsonSource.tileCacheBudget, RasterSource.tileCacheBudget, RasterDemSource.tileCacheBudget, RasterArraySource.tileCacheBudget, VectorSource.tileCacheBudget, CustomGeometrySource.tileCacheBudget, CustomRasterSource.tileCacheBudget.
  • Skip unneeded layers properties re-evaluation on zoom change.
  • Add the possibility to use constant expressions for model-emissive-strength when rendering 3D model layers using 2D sources.
  • Introduce static HttpServiceFactory.setMaxRequestsPerHost API.
  • TileStoreOptions.DiskQuota is now an abort threshold for tilestore size. When we have more than this amount of bytes stored, new downloads will fail. Tilestore starts to evict tiles with closest expiration date 50Mb before this abort threshold is reached.

Bug fixes 🐞

  • Retain previous CenterAltitudeMode after gestures are finished.
  • Avoid marking whole LayerDsl as experimental when only a part of the layer properties are experimental.
  • Fix R8 error due to missing class com.tobrun.datacompat.annotation.Default.
  • EaseTo and MoveBy camera animation and DefaultViewportTransition now will use shortest path when the start and end camera center is across the antimeridian, for example from -170 to 170 longitude.
  • Remove extra image padding from text shaping offset.
  • Address crashes on certain Android devices by disabling the texture pool.
  • Fixed elevated rasters with coordinates not aligned to the longitude/latitude grid.
  • Fixed a bug that was causing absence of MapLoaded event and never ending background task processing.
  • Fixed a bug that heatmap layer wasn't updating visuals after feature state change.
  • Fixed a bug where scientific notation is not supported when parse JSON numbers to Value.

Dependencies

Known issues

With the new way of Mapbox SDK initialization, your application unit tests may start failing when interacting with Mapbox APIs, even if mocked.
The error may look like:

Exception java.lang.NoClassDefFoundError: Could not initialize class com.mapbox.common.location.Location

or

Caused by: java.lang.RuntimeException: Method w in android.util.Log not mocked. See https://developer.android.com/r/studio-ui/build/not-mocked for details.
  at android.util.Log.w(Log.java)
  at com.mapbox.common.BaseMapboxInitializer$Companion.init(BaseMapboxInitializer.kt:116)
  at com.mapbox.common.BaseMapboxInitializer.init(BaseMapboxInitializer.kt)
  at com.mapbox.common.location.Location.<clinit>(Location.java:442)

To fix above errors, BaseMapboxInitializer should be properly mocked before accessing the failing Mapbox class. For example, when using Kotlin MockK you should add the following code:

mockkObject(BaseMapboxInitializer)
every { BaseMapboxInitializer.init<Any>(any()) } just Runs
// your test code
unmockkObject(BaseMapboxInitializer)

Alternative solution is to apply unitTests.returnDefaultValues.

v11.1.0

17 Jan 13:03
Compare
Choose a tag to compare

11.1.0 January 17, 2024

Features ✨ and improvements 🏁

  • From v11.1.0, Mapbox Android Auto Extension for Android is released as a separate module following the same release cadence with the main SDK, please refer to this guide to get started with Android Auto, and v0.5.0 changelog for previous changelogs.
  • Define minCompileSdkVersion=31 for Maps SDK libraries.
  • Introduce FillExtrusionLayer.fillExtrusionEmissiveStrength, HillshadeLayer.hillshadeEmissiveStrength and RasterLayer.rasterEmissiveStrength properties.
  • Introduce RasterLayer.rasterArrayBand property.
  • Improve performance of StyleInterface.localizeLabels method.
  • Introduce RasterArraySource with read only property RasterArraySource.rasterLayers, which can be used in combination with RasterLayer.sourceLayer and RasterLayer.rasterArrayBand.
  • Improve error handling for UnknownNativeException, more specific error message will be thrown instead.
  • Support landmark tilesets with compressed textures for improved tile load performance.
  • Improve performance of changing layers' properties.

Bug fixes 🐞

  • Fix MapSurface rendering issue when widgets are used.
  • Fix coordinateBoundsForCameraUnwrapped returning wrapped coordinates.
  • Fix inconsistent behavior in fill-extrusion color when using directional and ambient lights.
  • Downloaded but corrupted style is now invalidated and will be downloaded again on the next load.
  • Fixed missing tiles in the bottom part of the screen when looking from the mountain down to the valley.
  • Do not emit slot missing warnings if style imports are not fully loaded.
  • Fixed wrong dem tile selection from elevation snapshots in rare cases.
  • Fixed tile flickering with enabled terrain.
  • Add missing properties, i.e. array, values, maxValue, minValue, stepValue, metadata when using getStyleImportSchema API, if they are present in the original schema.
  • Exclude duplicated tileID in MapboxMap.tileCover querying results.
  • Fix race condition on repeated style transitions, when the transition fails for some layers.
  • Allow style schema to control imported fragment configs.
  • Fix possible rendering artifacts on startup when ContextMode.SHARED is used.
  • Fix wrong camera positions while using setBounds.
  • Fix missing IDs of flat light types when configured through the setLights API.
  • Reload image dependent tiles when sprites are loaded.
  • Fix an issue where memory use would grow continuously with Z-offset enabled symbol layers.
  • Fix crash when using Dynamic View Annotation with location indicator enabled but visibility is turned from visible to none.
  • Fix getStyleSourceProperties() API for RasterArray source.
  • Fix unreliable position update of View Annotations.
  • Fix GeoJSON partial updates when there is an error during update followed by multiple update calls.

Dependencies

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

v10.16.4

08 Jan 17:24
Compare
Choose a tag to compare

10.16.4 January 08, 2024

Features ✨ and improvements 🏁

  • Improve performance of StyleInterface.localizeLabels method.

Bug fixes 🐞

  • Fix regression introduced in v10.16.3 when only last added widget was rendered.
  • Fix tile flickering with enabled terrain.
  • Fix race condition on repeated style transitions, when the transition fails for some layers.
  • Fix wrong camera positions while using setBounds.
  • Reload image dependent tiles when sprites are loaded.
  • Exclude duplicated tileID in MapboxMap.tileCover querying results.
  • Fix artefacts at style transition by using a more robust approach for the data-driven properties updates.

Dependencies

  • Update gl-native to v10.16.4 and common to v23.8.6.

v11.1.0-rc.1

04 Jan 14:15
Compare
Choose a tag to compare
v11.1.0-rc.1 Pre-release
Pre-release

11.1.0-rc.1 January 04, 2024

Bug fixes 🐞

  • Fix possible rendering artifacts on startup when ContextMode.SHARED is used.
  • Fix regression introduced in v11.1.0-beta.1 where only last added widget was rendered.
  • Fix wrong camera positions while using setBounds.
  • Fix missing IDs of flat light types when configured through the setLights API.
  • Reload image dependent tiles when sprites are loaded.
  • Fix an issue where memory use would grow continuously with Z-offset enabled symbol layers.
  • Fix crash when using Dynamic View Annotation with location indicator enabled but visibility is turned from visible to none.
  • Fix getStyleSourceProperties() API for RasterArray source.
  • Fix unreliable position update of View Annotations.

Dependencies

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

v11.1.0-beta.1

19 Dec 15:52
Compare
Choose a tag to compare
v11.1.0-beta.1 Pre-release
Pre-release

11.1.0-beta.1 December 19, 2023

Features ✨ and improvements 🏁

  • Define minCompileSdkVersion=31 for Maps SDK libraries.
  • Introduce FillExtrusionLayer.fillExtrusionEmissiveStrength, HillshadeLayer.hillshadeEmissiveStrength and RasterLayer.rasterEmissiveStrength properties.
  • Introduce RasterLayer.rasterArrayBand property.
  • Improve performance of StyleInterface.localizeLabels method.
  • Introduce RasterArraySource with read only property RasterArraySource.rasterLayers, which can be used in combination with RasterLayer.sourceLayer and RasterLayer.rasterArrayBand.
  • Improve error handling for UnknownNativeException, more specific error message will be thrown instead.
  • Support landmark tilesets with compressed textures for improved tile load performance.

Bug fixes 🐞

  • Fix a MapSurface rendering issue when widgets are used.
  • Fix coordinateBoundsForCameraUnwrapped returning wrapped coordinates.
  • Fix inconsistent behavior in fill-extrusion color when using directional and ambient lights.
  • Downloaded but corrupted style is now invalidated and will be downloaded again on the next load.
  • Fixed missing tiles in the bottom part of the screen when looking from the mountain down to the valley.
  • Do not emit slot missing warnings if style imports are not fully loaded.
  • Fixed wrong dem tile selection from elevation snapshots in rare cases.
  • Fixed tile flickering with enabled terrain.
  • Add missing properties, i.e. array, values, maxValue, minValue, stepValue, metadata when using getStyleImportSchema API, if they are present in the original schema.
  • Exclude duplicated tileID in tileCover querying results.
  • Fix race condition on repeated style transitions, when the transition fails for some layers.
  • Allow style schema to control imported fragment configs.

Dependencies

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

v10.16.3

08 Dec 15:20
Compare
Choose a tag to compare

10.16.3 December 08, 2023

Bug fixes 🐞

  • Downgrade minimum required compileSDK from 31 to 30.
  • Fix the java.lang.UnsatisfiedLinkError exception happening on the startup.
  • Fix widgets flickering due to race condition if they are animated.
  • Fix widgets not showing on some zoom levels.
  • Fix map being black when using widgets (e.g. when MapDebugOptions.TILE_BORDERS option is enabled).
  • Fix the crash with enabled timestamps debug option.
  • Fix crashing with java.lang.Error: unknown native exception caused by model_collision shader compilation failure.
  • Fix TileStore not clearing the invalidated and serveable flags upon a successful download.

Dependencies

  • Update Mapbox gestures library to 0.9.1
  • Update gl-native to v10.16.3 and common to v23.8.5.

Known issues

  • The java.lang.UnsatisfiedLinkError exception on startup has been fixed when using Mapbox Maps SDK only. If other Mapbox products are used (Navigation, Search) - loading navigation / search native libraries might still crash. Mapbox Navigation / Search SDKs fixes will be released separately.

v11.0.0

29 Nov 16:05
Compare
Choose a tag to compare

11.0.0 November 29, 2023

Breaking changes ⚠️

  • Minimum OpenGL ES version is now 3.0.
  • Update SDK's targetSdkVersion and compileSdkVersion to 33.
  • 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.
  • 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.
  • 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.
  • Update Mapbox styles to latest versions:
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.
  • (Kotlin only) Remove Style.getStyleSources() / Style.getStyleLayers(). Properties Style.styleSources / Style.styleLayers should be used instead.
  • 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.
  • The MapCameraPlugin's onCameraMove method now uses Point for camera center and EdgeInsets for padding.
  • Remove MapInitOptions.optimizeForTerrain as whenever terrain is present layer order is automatically adjusted for better performance.
  • Replace MapboxMap and MapCameraManagerDelegate APIs dragStart, dragEnd, getDragCameraOptions with cameraForDrag, setCenterAltitudeMode.
  • Remove setter functions for Style.styleURI and Style.styleJSON as loading the style should happen only with MapboxMap.loadStyle.
  • Rename StyleImageMissing.getStyleImageMissingEventData to StyleImageMissing.toStyleImageMissingEventData.
  • Rename MapCameraManagerDelegate properties for methods cameraForCoordinateBounds, cameraForCoordinates and cameraForGeometry to align them with MapboxMap methods.
  • Consolidate FetchTileFunctionCallback and CancelTileFunctionCallback by single type TileFunctionCallback.
  • Make Image parameter nullable in setStyleCustomRasterSourceTileData() method.
  • Extension function Style.getProjection() return type changed from Projection to Projection?.
  • Extension function LocationComponentPlugin.createDefault2DPuck in LocationComponentUtils.kt is now stand-alone createDefault2DPuck.
  • Extension function LocationComponentPlugin.createDefault2DPuck in LocationComponentUtils is now stand-alone createDefault2DPuck.
  • Function createDefault2DPuck does not require a context parameter.
  • Increase minimum location puck bearing threshold needed to trigger an animation to 1 degree (previously 0.01 degrees) to reduce the CPU usage.
  • Location component puck bearing enabled property (MapView.location.puckBearingEanbled) has been changed to false by default.
  • ViewAnnotationManager.getViewAnnotationByFeatureId is renamed to ViewAnnotationManager.getViewAnnotation,
  • ViewAnnotationManager.getViewAnnotationByFeatureId is renamed to ViewAnnotationManager.getViewAnnotation.
  • ViewAnnotationManager.getViewAnnotationOptionsByView is renamed to ViewAnnotationManager.getViewAnnotationOptions.
  • ViewAnnotationManager.getViewAnnotationOptionsByFeatureId is renamed to ViewAnnotationManager.getViewAnnotationOptions.
  • ViewAnnotationAnchorConfig fields offsetX/offsetY are now of type Double instead of Int.
  • ViewAnnotationOptions accepts list of anchors variableAnchors instead of anchor/offsetX/offsetY.
  • ViewAnnotationOptions fields width/height are now of type Double instead of Int.
  • OnViewAnnotationUpdatedListener.onViewAnnotationPositionUpdated arguments width/height are now of type Double instead of Int.
  • Add getName method to DeviceLocationProvider interface.
  • Add boolean parameter allowUserDefined to getDeviceLocationProvider method in LocationService interface.
  • Add LocationService.getDeviceLocationProvider method that accepts ExtendedLocationProviderParameters to LocationService interface.

Features ✨ and improvements 🏁

  • Introduce new Mapbox 3D style Style.STANDARD and make it default.
  • Add dynamic view annotations that can be attached to complex feature geometries and reposition itself based on the current camera viewport. To create dynamic view annotation use AnnotatedFeature of type ANNOTATED_LAYER_FEATURE. Multiple dynamic view annotations can be attached to the same feature. Also additional options ViewAnnotationOptions.allowOverlapWithPuck and ViewAnnotationOptions.ignoreCameraPadding introduced to configure the ...
Read more