Releases: mapbox/mapbox-maps-android
Releases · mapbox/mapbox-maps-android
android-v10.5.0
10.5.0 May 5, 2022
Features ✨ and improvements 🏁
- Make map projection part of the style-spec and introduce new methods
StyleInterface.setProjection
/StyleInterface.getProjection
. Setting projection supports Style DSL as well. (#1255, #1314) - Automatic transition between the globe and mercator projection updated to appear visually more subtle. (#1315)
- Avoid repeated tile loading from network (or repeated tile decompression when the tile is fetched from the cache database) and repeated vector tile data allocation and parsing when loading render tiles referring to the same logical tile. (#1315)
- Switch to use shader to calculate the 'line-trim-offset' property update. (#1315)
- Layer properties transitions performance improved if the layer is transitioning to the same constant value or if transitioning from/to data-driven property. (#1315)
- New line layer paint property introduced: '{"line-trim-offset", [trim-start, trim-end]}', to take the line trim-off percentage range based on the whole line range [0.0, 1.0]. The property will only be effective when 'line-gradient' property is set. The line part between [trim-start, trim-end] will be marked as transparent to make a line gradient a vanishing effect. If either 'trim-start' or 'trim-end' offset is out of valid range, the default range [0.0, 0.0] will be set. (#1315)
- Globe view controls revamped for more intuitive interaction with touch controls. (#1315)
- OfflineRegion::getStatus() API added to get the completion status and the local size of the existing legacy offline regions. (#1315)
- Refactor all Mapbox logs so that Logcat tag will always be 'Mapbox' allowing easier filtering. Previous log tag will become part of the log message now. (#1276)
- Optimize how plugins handle settings changes. Call
applySettings
only when settings value changes. (#1189) - Add
MapboxMap.isValid()
andStyle.isValid()
methods.MapboxMap
becomes invalid whenMapView.onDestroy()
is called.Style
becomes invalid whenMapView.onDestroy()
is called or new style has been loaded. Accessing any method on invalid object will print an error log. Also unsubscribe map observers automatically whenMapboxMap.onDestroy()
is invoked. (1193) (1202 (1230) (1241)) - Add
MapboxMap.coordinateBoundsForCameraUnwrapped
method for API consistency. (1222) - Add
LocationIndicatorLayer.bearingTransition
API to control transition of bearing property. (1207) - Add
MapboxConcurrentGeometryModificationException
with detailed information instead ofConcurrentModificationException
that is thrown when GeoJson data is mutated. (1248) - Introduce
line-trim-offset
property for LineLayer. (1252) - Deprecate
FollowPuckViewportStateOptions.animationDurationMs
, the initial transition will be handled properly by the Viewport plugin internally. (1256, 1261, 1262) - Mark
MapView.viewAnnotationManager
as non-experimental meaning View Annotation API will not have breaking changes in upcoming minor releases. (1260)
Bug fixes 🐞
- Fix geojson missing updates with persistent layer after style change. (#1324)
- Fix render tasks being skipped when creating the map that could lead to missing tiles. (#1304)
- The legacy offline region observer instance is not unnecessarily retained inside the engine. #1315
- Fix a bug of querying rendered feature for circle layer with map-pitch-alignment when the pitch is zero. #1315
- Fix a bug where zooming was not possible with terrain enabled and exaggeration 0. #1315
- Fix an issue where internal hsla() function was converted to an invalid rgba expression. #1315
- Fix a bug that 'line-trim-offset' calculation did not property cover 'round' or 'square' line cap in line ends. #1315
- Dispatched in-flight events will not be delivered if 'unsubscribe' is called before an event is delivered. #1315
- Fix an issue where some of the visible tiles could be erroneously culled during transition between globe and mercator projection. #1315
- Fixes issues where camera appears under terrain, or map gets bumpy repositioning after exaggeration change. #1315
- Disable terrain rendering if GPU does not support Vertex Texture Fetch. #1315
- Fixed a bug that occasionally prevents symbols from loading. #1315
- Fixed a bug that causes line layers to flicker. #1325
- Fix NaN latitude native crash rarely happening during
MapboxMap.flyTo
. (#1271) - Limit
MapboxMap.pixelForCoordinate
to the bounds of MapView. (#1226) - Fix PolygonAnnotation and PolylineAnnotation being distorted while dragging with 3D terrain. (#1223)
Dependencies
android-v10.4.3
10.4.3 April 27, 2022
Bug fixes 🐞
- Fix render tasks being skipped when creating the map that could lead to missing tiles. (#1304)
android-v10.5.0-rc.1
10.5.0-rc.1 April 20, 2022
Features ✨ and improvements 🏁
- Refactor all Mapbox logs so that Logcat tag will always be 'Mapbox' allowing easier filtering. Previous log tag will become part of the log message now. (#1276)
- Avoid repeated tile loading from network (or repeated tile decompression when the tile is fetched from the cache database) and repeated vector tile data allocation and parsing when loading render tiles referring to the same logical tile. (#1282)
- Switch to use shader to calculate the 'line-trim-offset' property update. (#1282)
Bug fixes 🐞
- Fix issue where internal hsla() function was converted to an invalid rgba expression. (#1282)
- Fix a bug that 'line-trim-offset' calculation did not property cover 'round' or 'square' line cap in line ends. (#1282)
- Fix NaN latitude native crash rarely happening during
MapboxMap#flyTo
. (#1271) - Limit
MapboxMap#pixelForCoordinate
to the bounds of MapView. (#1226)
Dependencies
- Bump gl-native to v10.5.0-rc.1, mapbox-common to v21.3.0-rc.2. (#1282)
android-v10.4.2
extension-androidauto-v0.1.0
0.1.0 April 7, 2022
Features ✨ and improvements 🏁
- Add
MapboxCarMap
. Constructing this object will add mapbox map to the head unit. (#1004) - Add
MapboxCarMapObserver
andMapboxCarMapSurface
which allows you to build customizations for theMapboxMap
. (#1004) - Add
MapboxCarMapGestureHandler
andDefaultMapboxCarMapGestureHandler
for handling panning and zooming gestures. (#1159) - Add an example to the
:android-auto-app:
module, it includes a 3D location puck, and follows the car location. (#1004) - Show Mapbox Logo and a Compass in an example with the
CarMapWidgets
. TheBitmapWidget
is available starting with Maps v10.4.0. (#1004)
Dependencies
- Android Auto car library
androidx.car.app:app:1.1.+
- Supports any version of Mapbox Maps 10.+
android-v10.4.1
10.4.1 April 7, 2022
Bug fixes 🐞
- Re-introduce the API to get the status of the existing offline regions, so that the clients can get the completion status and the local size of the existing legacy offline regions. (#1263)
- Fix a bug that occasionally prevents symbols from loading. (#1263)
Dependencies
- Bump gl-native to v10.4.2 (#1263)
android-v10.5.0-beta.1
10.5.0-beta.1 April 7, 2022
Breaking changes ⚠️
- Experimental methods
MapboxMap#setMapProjection
/MapboxMap#getMapProjection
are removed and should be replaced withStyleInterface#setProjection
/StyleInterface#getProjection
. Setting projection supports Style DSL as well. (#1255)
Features ✨ and improvements 🏁
- Optimize how plugins handle settings changes. Call
applySettings
only when settings value changes. (#1189) - Add
MapboxMap.isValid()
andStyle.isValid()
methods.MapboxMap
becomes invalid whenMapView.onDestroy()
is called.Style
becomes invalid whenMapView.onDestroy()
is called or new style has been loaded. Accessing any method on invalid object will print an error log. Also unsubscribe map observers automatically whenMapboxMap.onDestroy()
is invoked. (1193) (1202 (1230) (1241)) - Add
MapboxMap#coordinateBoundsForCameraUnwrapped
method for API consistency. (1222) - Add
LocationIndicatorLayer.bearingTransition
API to control transition of bearing property. (1207) - Add
MapboxConcurrentGeometryModificationException
with detailed information instead ofConcurrentModificationException
that is thrown when GeoJson data is mutated. (1248) - Introduce
line-trim-offset
property for LineLayer. (1252) - Deprecate
FollowPuckViewportStateOptions.animationDurationMs
, the initial transition will be handled properly by the Viewport plugin internally. (1256, 1261, 1262) - Mark
MapView#viewAnnotationManager
as non-experimental meaning View Annotation API will not have breaking changes in upcoming minor releases. (1260) - Map render call optimized further by further reducing computational overhead. (#1244)
- Layer properties transitions performance improved if the layer is transitioning to the same constant value or if transitioning from/to data-driven property. (#1244)
- New line layer paint property introduced: '{"line-trim-offset", [trim-start, trim-end]}', to take the line trim-off percentage range based on the whole line range [0.0, 1.0]. The property will only be effective when 'line-gradient' property is set. The line part between [trim-start, trim-end] will be marked as transparent to make a line gradient a vanishing effect. If either 'trim-start' or 'trim-end' offset is out of valid range, the default range [0.0, 0.0] will be set. (#1244)
- Globe view controls revamped for more intuitive interaction with touch controls. (#1244)
- OfflineRegion::getStatus() API added to get the completion status and the local size of the existing legacy offline regions. (#1244)
- Automatic transition between the globe and mercator projection updated to appear visually more subtle. (#1244)
Bug fixes 🐞
- Dispatched in-flight events will not be delivered if 'unsubscribe' is called before an event is delivered. (#1244)
- Transitions between globe and mercator projection do not cull tiles incorrectly anymore. (#1244)
- Map LOD disabled for camera pitch less than 30 degrees to avoid map content missing on maps with insets. (#1244)
- Terrain-related camera issues fixed, previously making it appear under terrain, or incorrectly repositioned after exaggeration change. (#1244)
- Terrain rendering disabled on GPUs not supporting Vertex Texture Fetch. (#1244)
- Fixed a bug that occasionally prevented symbols from loading. (#1244)
- Fix PolygonAnnotation and PolylineAnnotation being distorted while dragging with 3D terrain. (#1223)
Dependencies
- Bump gl-native to v10.5.0-beta.1, mapbox-common to v21.3.0-beta.2. (#1244)
android-v10.4.0
10.4.0 March 23, 2022
Changes since Mapbox Maps SDK for Android 10.3.0
Features ✨ and improvements 🏁
- Refactor scheduling logic for render thread improving rendering performance. (#1068)
- Add LocationCompassEngine and accuracy radius support for location component plugin. (#1016) (#1131)
Inorder to avoid breaking api changes, interface location2 is introduced for updatingpuckBearingSource
,puckBearingEnabled
andshowAccuracyRing
properties.
// Change the puck bearing source.
mapView.location2.puckBearingSource = PuckBearingSource.HEADING
mapView.location2.puckBearingSource = PuckBearingSource.COURSE
// Change the visibility of accuracy ring.
mapView.location2.showAccuracyRing = true
mapView.location2.showAccuracyRing = false
// Change the puck bearing enabled.
mapView.location2.puckBearingEnabled = true
mapView.location2.puckBearingEnabled = false
- Add support for custom widgets rendered on top of the map. (#1036)
- Expose DefaultLocationProvider as public class. (#1168)
- Add new methods to View Annotation API:
ViewAnnotationManager.removeAllViewAnnotations()
andViewAnnotationManager.addOnViewAnnotationUpdatedListener(listener: OnViewAnnotationUpdatedListener)
/ViewAnnotationManager.removeOnViewAnnotationUpdatedListener(listener: OnViewAnnotationUpdatedListener)
. (#1165) - Add optional
TransitionOptions
parameter toMapboxMap.loadStyleUri
,MapboxMap.loadStyleJson
,MapboxMap.loadStyle
to apply transition to style being loaded. (#1174) - Rendering performance improvements. (1215)
- Add support for 3D terrain tilepacks. (1215)
- Add
Style#hasStyleImage
method that checks whether an image is in the style. (1215)
Bug fixes 🐞
- Fix skipping / crashing user events scheduled on a render thread with
MapView#queueEvent
. (#1068) - Fix location puck not being shown if map is created without initial style (e.g. MapInitOptions.styleUri == null) and then loaded asynchronously. (#1114)
- Fix crash within location plugin that happens when style is reloaded simultaneously with location plugin updates. (#1112)
- Fix memory leak in location component. (#1093, #1172)
- Fix bearing of the puck reseted on settings change. (#1144)
- Fix an issue when user subscribe sdk listeners multiple times, by changing CopyOnWriteArrayList to CopyOnWriteArraySet in the sdk to hold listeners. (1183)
- Fix an issue when label list is used within the match expression DSL. (1204)
- Fix too small bounds returned by
Map#latLngBoundsZoomForCamera
with tilted view andMap#latLngBoundsZoomForCameraUnwrapped
when viewing >360° longitude. (1215) - Fix screen coordinate queries when using zero pitch and high zoom values. (1215)
- Fix crash for the case when a map event is handled by an Observer of a destructed Map. (1215)
- Fix shimmering artifact when pitched raster tiles with compressed textures are rendered. (1215)
- Avoid possible crash at program exit caused by dummy tracer accessed after the destruction. (1215)
- Clearing diffuse shaded flag for 3D puck when set by batched 3D rendering. (1215)
Dependencies
android-v10.4.0-rc.1
10.4.0-rc.1 March 9, 2022
Bug fixes 🐞
- Fix an issue when user subscribe sdk listeners multiple times, by changing CopyOnWriteArrayList to CopyOnWriteArraySet in the sdk to hold listeners. (1183)
- Fix an issue when label list is used within the match expression DSL. (1204)
- Fixed an issue where small bounds returned by Map::latLngBoundsZoomForCamera with tilted view and Map::latLngBoundsZoomForCameraUnwrapped when viewing >360° longitude. (#1208)
Dependencies
- Bump gl-native to 10.4.0-rc.1, mapbox-common to v21.2.0-rc.1 (#1208)
android-v10.4.0-beta.1
10.4.0-beta.1 February 24, 2022
Features ✨ and improvements 🏁
- Refactor scheduling logic for render thread improving rendering performance. (#1068)
- Add LocationCompassEngine and accuracy radius support for location component plugin. (#1016) (#1131)
Inorder to avoid breaking api changes, interface location2 is introduced for updatingpuckBearingSource
,puckBearingEnabled
andshowAccuracyRing
properties.
// Change the puck bearing source.
mapView.location2.puckBearingSource = PuckBearingSource.HEADING
mapView.location2.puckBearingSource = PuckBearingSource.COURSE
// Change the visibility of accuracy ring.
mapView.location2.showAccuracyRing = true
mapView.location2.showAccuracyRing = false
// Change the puck bearing enabled.
mapView.location2.puckBearingEnabled = true
mapView.location2.puckBearingEnabled = false
- Add support for custom widgets rendered on top of the map. (#1036)
- Expose DefaultLocationProvider as public class. (#1168)
- Add new methods to View Annotation API:
ViewAnnotationManager.removeAllViewAnnotations()
andViewAnnotationManager.addOnViewAnnotationUpdatedListener(listener: OnViewAnnotationUpdatedListener)
/ViewAnnotationManager.removeOnViewAnnotationUpdatedListener(listener: OnViewAnnotationUpdatedListener)
. (#1165) - Improve rendering performance by coalescing map updates when possible. (#1160)
- Add
StyleManager::hasStyleImage
API that checks whether an image is in the style or not. (#1160) - Improve Snapshotter performance by using a lightweight scheduler instead of platform runloop. (#1160)
- Map now waits on sprite sheet loading before rendering. (#1160)
- Improve map rendering performance by avoiding calculations for all the non-transitional style layer paint properties. (#1160)
- Enable using of tile pack scheme from TileJSON. (#1160)
- Improve map rendering performance by decreasing de/allocations in map placement code. (#1160)
- Avoid style layer properties transition calculation when
TransitionOptions::duration
is set to 0. (#1160) - Enable tile packs for DEM terrain tiles, it includes both Offline API and
TileStoreUsageMode::ReadAndUpdate
resource option. (#1160) - Render tiles with partial content while the glyph dependencies are loading. (#1160)
- Canonicalize URLs and enable Offline API usage for the 3dtiles/v1 tiles. (#1160)
- Add optional
TransitionOptions
parameter toMapboxMap.loadStyleUri
,MapboxMap.loadStyleJson
,MapboxMap.loadStyle
to apply transition to style being loaded. (#1174)
Bug fixes 🐞
- Fix skipping / crashing user events scheduled on a render thread with
MapView#queueEvent
. (#1068) - Fix location puck not being shown if map is created without initial style (e.g. MapInitOptions.styleUri == null) and then loaded asynchronously. (#1114)
- Fix crash within location plugin that happens when style is reloaded simultaneously with location plugin updates. (#1112)
- Fix memory leak in location component. (#1093, #1172)
- Fix screen coordinate queries when using zero pitch and high zoom values. (#1160)
- Avoid possible crash at program exit caused by dummy tracer accessed after the destruction. (#1160)
- Fix crash for the case when a map event is handled by an Observer of a destructed map. (#1160)
- Fix shimmering artifact when pitched raster tiles with compressed textures are rendered. (#1160)
- Fix bearing of the puck reseted on settings change. (#1144)