v10.5.0
mapbox-github-ci-writer-public-1
released this
06 May 03:38
·
1096 commits
to main
since this release
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.