Releases: mapbox/mapbox-maps-ios
Releases · mapbox/mapbox-maps-ios
v10.6.0
Changes
- With the new Atmosphere API, you can change the color of the sky, space, or even stars (#1329).
- 3D puck scale depends on Mercator projection now. Check out video samples in related PR (#1347).
- There is a new API to check efficiently the existence of an image in
Style
based on its name (#1297). - Maps SDK now would automatically call
MapboxMap.reduceMemoryUse
every time the app goes to background (#1301). - We have slightly changed the SDK name in the attribution action sheet (#1338).
- Annotation tap target was decreased to pre-10.5.0 release values (#1339).
- We introduce the new experimental ModelLayer API that allows you to add arbitrary models over the MapView. Checkout ModelLayerExample.swift to see a sample (#1348).
Dependencies
- Update to MapboxMobileEvents
1.0.8
(#1324). - Update to MapboxCommon to
22.0.0
(#1394). - Update to MapboxCoreMaps
10.6.0
(#1394):-
Changelog
- Features ✨ and improvements 🏁
- Update mapbox-common to v22.0.0.
- Reduce geometry on globe tile to increase rendering performance.
- Minimise tiles relayout on camera zooming with globe view. Improve the overall performance and reduce latency of the cached tiles appearance.
- Add minimum and maximum range check for sky layer property 'sky-atmosphere-sun' and 'sky-gradient-center'. If the input is invalid, the default property value will be used.
- Add support for sending turnstile event in native for embedded platforms.
- Use a single shared buffer across all globe tiles to increase performance.
- Use shaders to calculate the 'line-trim-offset' property update.
- Re-introduce partial tile loading to provide better TTRC.
- The TilesetDescriptorOptions::pixelRatio parameter is now passed to the Tile Store and considered for the raster tile pack loading
- Bug fixes 🐞
- Fix lag during night/day style switching when globe is enabled.
- Fix crash on globe symbol placement that happens during style change.
- Fix incorrect image source rendering with terrain enabled.
- Fix in-memory tile cache for non-geometry tiles when the map projection changes. Before, the tiles cached while the previous projection was active could not be used with the new projection active.
- Fix unexpected request delay for tiles taken from in-memory cache when minimumTileUpdateInterval is set.
- Fix 'line-trim-offset' input losing precision via shader calculation.
- Fix momentary appearance of pan tiles labels.
- Fix for location indicator not rendered at horizon when terrain is enabled.
- Fix for 'line-trim-offset' calculation not properly covering 'round' or 'square' line cap in line ends.
- Features ✨ and improvements 🏁
-
Dependency requirements:
- Minimum compatible version of Xcode:
13.0.0
v10.5.1
Requires Xcode 13.0.0 or later
Changes
- Address a bug impacting the performance of rendering the map in certain scenarios. (#1386)
Dependencies
- Update to MapboxCoreMaps 10.5.3 and MapboxCommon 21.3.0. (#1386)
- Bug fixes 🐞
- Don't use timestamps for presenting Metal drawable, as it could introduce rendering delay.
- Bug fixes 🐞
v10.6.0-rc.1
Requires Xcode 13.0.0 or later
Changes
- Fix 3D puck sized incorrectly in the globe view. (#1347)
Dependencies
- Update to MapboxCoreMaps 10.6.0-rc.1 and MapboxCommon 22.0.0-rc.2. (#1368)
- Features ✨ and improvements 🏁
- Minimise tiles relayout on camera zooming with globe view. Improve the overall performance and reduce latency of the cached tiles appearance.
- Add minimum and maximum range check for sky layer property
sky-atmosphere-sun
andsky-gradient-center
. If the input is invalid, the default property value will be used. - Share render data between vector render tiles referring to the same logical tile
- Update mapbox-common to v22.0.0-rc.2
- Improve vertex buffer allocation of tile render data in Metal
- Bug fixes 🐞
- Fix a bug where android test dependency was introduced as a strict version.
- Fix an unexpected request update delay for tiles taken from in-memory cache when minimumTileUpdateInterval is set
- Features ✨ and improvements 🏁
v10.6.0-beta.2
Requires Xcode 13.0.0 or later
Style
- Introduce ModelLayer experimental API to render 3D models on the map. (#1348)
v10.6.0-beta.1
Requires Xcode 13.0.0 or later
Style
- Expose API to check whether an image exists in
Style
. (#1297) - Add Atmosphere API. This allows adding an atmosphere effect when using globe projection. See the new
Atmosphere
struct,Style.setAtmosphere(_:)
, andStyle.removeAtmosphere()
. (#1329)
SDK Internals
- Call
MapboxMap.reduceMemoryUse
when application goes to background. (#1301) - Enable explicit drawing behavior for metal view(call
draw()
explicitly instead ofsetNeedsDisplay
when view's content need to be redrawn) again. (#1331)
Ornaments
- Update SDK name in attribution action sheet. (#1338)
Bug Fixes
- Revert annotation tap handling to enable better precision. (#1339)
Dependencies
- Update to MapboxCoreMaps 10.6.0-beta.3 and MapboxCommon 22.0.0-beta.1. (#1335, #1342)
- Features ✨ and improvements 🏁
- Use a single shared buffer across all globe tiles to increase globe rendering performance
- Increase performance of 'line-trim-offset' rendering by using shader instead of expensive CPU calculations
- The TilesetDescriptorOptions::pixelRatio parameter is now passed to the TileStore and considered for the raster tile pack loading. This enables loading of a raster tilepacks for retina displays.
- Re-introduce partial tile loading feature that decreases map load times
- Bug fixes 🐞
- Fix for momentary appearing of a lower zoom level tile labels during camera movement
- Fix for location indicator not being rendered at the horizon when terrain is enabled
- Fix for loading gltf models with interleaved buffers
- Fix a bug that 'line-trim-offset' calculation did not property cover 'round' or 'square' line cap in line ends
- Features ✨ and improvements 🏁
- Update to MapboxMobileEvents v1.0.8. (#1324)
v10.5.0
Minimum compatible version of Xcode: 13.0.0
Changes
General
- Add support for app extensions. (#1183)
- Expose convenience properties and methods to transform
CoordinateBounds
. (#1226) - Add a prefix
maps-ios
to all Log message's category. (#1250)
Style
- Add support for runtime source properties. (#1267)
- Fix localization crash on iOS 11 and 12. (#1278)
- Add
Style.setLight(_:)
. (#1234) - Introduce
line-trim-offset
property for LineLayer. (#1231) - Move APIs for using globe projection from
MapboxMap
toStyle.setProjection(_:)
andStyle.projection
, and remove their experimental designation. (#1235)
Annotations
- Increase annotation tap target to conform to Apple Human Interface Guidelines. (#1283)
Location
- Start location services lazily. (#1262)
MapboxMap
- Expose API to set memory budget for
MapboxMap
. (#1288) MapboxMap.point(for: CLLocationCoordinate2D)
should only be used with visible coordinates. It now returns (-1, -1) if the coordinate is not visible. (#1195)- Add
MapboxMap.coordinateBoundsUnwrapped
which correctly handles scenarios that cross the antimeridian or wrap around the globe more than once. (#1241)
Camera Animations
BasicCameraAnimator.cancel()
and.stopAnimation()
now invoke the completion blocks withUIViewAnimatingPosition.current
instead of crashing with afatalError
when invoked prior to.startAnimation()
or.startAnimation(afterDelay:)
. (#1197)CameraAnimationsManager.stopAnimations()
will now cancel all animators regardless of their state. Previously, only animators withstate == .active
were canceled. (#1197)- Fix animator-related leaks. (#1200)
- Animator completion handlers added to already-completed or canceled animators will now be invoked asynchronously on the main queue. (#1305)
Gestures
- Improve AnyTouchGestureRecognizer's interaction with other gesture recognizers. (#1210)
- Increase deceleration cutoff threshold from 20 to 35 to prevent camera changes after the pan deceleration animation stops visually. (#1244)
Offline
- Deprecate
OfflineRegionManager.mergeOfflineDatabase(for:completion)
. UseOfflineRegionManager.mergeOfflineDatabase(forPath:completion)
instead. (#1192) - Add
OfflineRegion.getStatus(completion:)
. (#1239)
Viewport
- Deprecate
FollowPuckViewportStateOptions.animationDuration
which was a workaround for the moving target problem. (#1228) - Update
DefaultViewportTransition
to solve the moving target problem. (#1245)
Dependencies
Features ✨ and improvements 🏁
- Map projection API moved from Map to Style, in order to allow specifying the map projection in the style. API is no longer experimental.
- Automatic transition between the globe and mercator projection updated to appear visually more subtle.
- Update mapbox-common to v21.3.0.
- 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
- Switch to use shader to calculate the 'line-trim-offset' property update.
- Layer properties transitions performance improved if the layer is transitioning to the same constant value or if transitioning from/to data-driven property.
- 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.
- Globe view controls revamped for more intuitive interaction with touch controls.
- OfflineRegion::getStatus() API added to get the completion status and the local size of the existing legacy offline regions.
Bug fixes 🐞
- The legacy offline region observer instance is not unnecessarily retained inside the engine.
- Fix a bug of querying rendered feature for circle layer with map-pitch-alignment when the pitch is zero.
- Fix a bug where zooming was not possible with terrain enabled and exaggeration 0.
- Fix an issue where internal hsla() function was converted to an invalid rgba expression.
- Fix a bug that 'line-trim-offset' calculation did not property cover 'round' or 'square' line cap in line ends.
- Dispatched in-flight events will not be delivered if 'unsubscribe' is called before an event is delivered.
- Fix an issue where some of the visible tiles could be erroneously culled during transition between globe and mercator projection.
- Fixes issues where camera appears under terrain, or map gets bumpy repositioning after exaggeration change.
- Disable terrain rendering if GPU does not support Vertex Texture Fetch.
- Fixed a bug that occasionally prevents symbols from loading.
v10.5.0-rc.1
- Minimum compatible version of Xcode:
13.0.0
Changes
- Add support for runtime source properties. (#1267)
- Start location services lazily. (#1262)
- Fix localization crash on iOS 11 and 12. (#1278)
- Increase annotation tap target to conform to Apple Human Interface Guidelines. (#1283)
- Update to MapboxCoreMaps 10.5.0-rc.1 and MapboxCommon 21.3.0-rc.2. (#1281)
- Expose API to set memory budget for
MapboxMap
. (#1288)
v10.4.3
- Compatible version of Xcode:
12.5.1
Changes
- Updates to MapboxCommon 21.2.1 to fix an issue with loading content from the cache. (#1271)
- Fixes an issue where location services were started before they were needed. (#1262)
Direct download
Link to download binaries (append your own Mapbox access token scoped with DOWNLOADS:READ
):
https://api.mapbox.com/downloads/v2/mobile-maps-ios/releases/ios/10.4.3/MapboxMaps.zip?access_token=<access-token>
v10.5.0-beta.1
Changes
- Mitigate
OfflineRegionManager.mergeOfflineDatabase(for:completion)
throwingTypeConversionError.unexpectedType
on a successfull merge. IntroduceOfflineRegionManager.mergeOfflineDatabase(forPath:completion)
as the correct way to merge offline database. (#1192) - Limit MapboxMap.point(for: CLLocationCoordinate2D) to the bounds of map view (#1195)
- Add support for app extensions. (#1183)
BasicCameraAnimator.cancel()
and.stopAnimation()
now invoke the completion blocks withUIViewAnimatingPosition.current
instead of crashing with afatalError
when invoked prior to.startAnimation()
or.startAnimation(afterDelay:)
. (#1197)CameraAnimationsManager.stopAnimations()
will now cancel all animators regardless of their state. Previously, only animators withstate == .active
were canceled. (#1197)- Fix animator-related leaks. (#1200)
- Improve AnyTouchGestureRecognizer's interaction with other gesture recognizers. (#1210)
- Expose convenience properties and methods to transform
CoordinateBounds
. (1226) - Update annotation examples. (#1215)
- Add
Style.setLight(_:)
to set light onto a style. UpdateBuildingExtrusionsExample
with an example to set a light source on the style. (#1234) - Remove
FollowPuckViewportStateOptions.animationDuration
, a workaround for the moving target problem. (#1228) - Deprecate
FollowPuckViewportStateOptions.animationDuration
, a workaround for the moving target problem. (#1228) - Add map view example with
debugOptions
. (#1225) - Introduce
line-trim-offset
property for LineLayer. (#1231) - Add
MapboxMap.coordinateBoundsUnwrapped
. (#1241) - Update
DefaultViewportTransition
to solve the moving target problem. (#1245) - Increase deceleration cutoff threshold from 20 to 35 to prevent camera changes
after animation stops. (#1244) - API for using globe projection has been moved to
Style.setProjection(_:)
andStyle.projection
and is no longer experimental. (#1235) - Add
OfflineRegion.getStatus(completion:)
. (#1239) - Add a prefix
maps-ios
to all Log message's category. (#1250)
Dependencies
- Update to MapboxCoreMaps 10.5.0-beta.1 and MapboxCommon 21.3.0-beta.2. (#1235)
Breaking changes
⚠️ - Map projection API moved from Map to Style, in order to allow specifying the map projection in the style
- Automatic transition between the globe and mercator projection updated to appear visually more subtle.
Features ✨ and improvements 🏁
- Map render call optimized further by further reducing computational overhead.
- Layer properties transitions performance improved if the layer is transitioning to the same constant value or if transitioning from/to data-driven property.
- 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.
- Globe view controls revamped for more intuitive interaction with touch controls.
- OfflineRegion::getStatus() API added to get the completion status and the local size of the existing legacy offline regions.
Bug fixes 🐞
- Dispatched in-flight events will not be delivered if 'unsubscribe' is called before an event is delivered.
- Transitions between globe and mercator projection do not cull tiles incorrectly anymore.
- Terrain-related camera issues fixed, previously making it appear under terrain, or incorrectly repositioned after exaggeration change.
- Terrain rendering disabled on GPUs not supporting Vertex Texture Fetch.
- Fixed a bug that occasionally prevented symbols from loading.
Dependency requirements:
- Compatible version of Xcode:
13.0.0