Releases: maplibre/maplibre-navigation-ios
Releases · maplibre/maplibre-navigation-ios
4.0.0-beta.1
Xcode doesn't list pre-releases when adding Packages via "add Package...". To test this release, specify the "exact version" 4.0.0-beta.1 in Xcode when adding https://github.com/maplibre/maplibre-navigation-ios.git
What's Changed
- Start & Stop Navigation in existing Map by @Patrick-Kladek in #54
Navigation can now be started in an existing map, instead of a second map appearing over your existing map. This greatly reduces memory usages of apps, as well as improving the UX for users.
Old Behavior |
New Behavior |
- Only require background audio when using speech synthesis by @michaelkirk in #64
- Restore the ability to init NavVC without animations. by @michaelkirk in #73
- Remove unnecessary keyboard tracking. by @michaelkirk in #69
- Fix crash in EndOfRouteViewController and restore its presentation by @michaelkirk in #71
- Fix retain cycles in RouteMapViewController by @michaelkirk in #74
- Add "Build Example Project" to CI by @michaelkirk in #77
- Fix version 3 documentation by @hactar in #81
- fix and re-run extract_localizable.sh by @michaelkirk in #70
- SwiftUI Optimisation by @Patrick-Kladek in #76
- Fix tests on german machine by @Patrick-Kladek in #83
- Open RouteController to custom location snapping by @sotomski in #85
- Clean up StyleManager and respect dynamic type by @michaelkirk in #65
New Contributors
Full Changelog: 3.0.0...4.0.0-beta.1
3.0.0
- The
speak
method inRouteVoiceController
can be used without a givenRouteProgress
or theRouteProgress
can explicitly ignored so that it will not be added to the voice instruction. RouteProgress
is now optional inwillSpeak
method ofVoiceControllerDelegate
if theRouteProgress
in thespeak
method of theRouteVoiceController is
nil`.- Uses the
Locale
given inRouteOptions
to create the correspondingAVSpeechSynthesisVoice
. - Removed setCamera() from updateCourseTracking()
- Added setCamera() to progressDidChange()
- Allow to customize rerouting logic by implementing RouteControllerDelegate#routeControllerGetDirections
- Add option to overwrite camera update via NavigationMapViewCourseTrackingDelegate#updateCamera
- Remove MapboxVoiceController and Mapbox Speech dependency. If you would like to use MapboxSpeech, you can copy the deleted MapboxVoiceController into your project.
- Updated MapLibre Native dependency to ios-v6.0.0 (https://github.com/maplibre/maplibre-native/releases/tag/ios-v6.0.0). Implementers need to change the prefix MGL to MLN for all MapLibre Native classes that are referenced.
- Only snap location to route if the location is within the
RouteControllerUserLocationSnappingDistance
- Add support for Swift Package Manager while dropping Carthage and Cocoapods.
- Initialization no longer tries to add mapbox://mapbox.mapbox-streets-v7 to all mapstyles.
- Removed implicit default dependencies on MapBox tileservers by requiring explicit styles URLs in more places.
- Merged in #45.
- BREAKING: Removed
MLNStyle
extensions referencing non-functioning MapBox styles, e.g.MLNStyle.navigationGuidanceDayStyleURL
. - Added
Day/NightStyle(styleURL:)
which takes an explicit URL to a hosting tileserver style. - Added
Day/NightStyle(demoStyle: ())
as an explicit alternative when the user doesn't have a tileserver handy. This uses MapLibre's demo style and is intended for testing and demonstration use only. - Deprecated
DayStyle()
/NightStyle()
initializers because they were backed by an implicit tile service. If these default styles are still used, they'll now use the MapLibre demo style. NavigationViewController
now expects explicit style URLs withNavigationViewController(route:dayStyleURL:nightStyleURL:...)
or NavigationViewController(route:dayStyle:nightStyle:...)` and the existing initializer, which allowed "default" styles, is deprecated and uses the MapLibre demo styles.
- Fix: NavigationViewController was not re-routing when the user went off route.
- Merged in #47
- Fix: NavigationViewController displayed incorrect
speedMultiplier
when using SimulatedLocationManager- Merged in #49
3.0.0-beta.1
Xcode doesn't list pre-releases when adding Packages via "add Package...". To test this release, specify the "exact version" 3.0.0-beta.1 in Xcode when adding https://github.com/maplibre/maplibre-navigation-ios.git
What's Changed
- The
speak
method inRouteVoiceController
can be used without a givenRouteProgress
or theRouteProgress
can explicitly ignored so that it will not be added to the voice instruction. RouteProgress
is now optional inwillSpeak
method ofVoiceControllerDelegate
if theRouteProgress
in thespeak
method of theRouteVoiceController is
nil`.- Uses the
Locale
given inRouteOptions
to create the correspondingAVSpeechSynthesisVoice
. - Removed setCamera() from updateCourseTracking()
- Added setCamera() to progressDidChange()
- Allow to customize rerouting logic by implementing RouteControllerDelegate#routeControllerGetDirections
- Add option to overwrite camera update via NavigationMapViewCourseTrackingDelegate#updateCamera
- Remove MapboxVoiceController and Mapbox Speech dependency. If you would like to use MapboxSpeech, you can copy the deleted MapboxVoiceController into your project.
- Updated MapLibre Native dependency to ios-v6.0.0 (https://github.com/maplibre/maplibre-native/releases/tag/ios-v6.0.0). Implementers need to change the prefix MGL to MLN for all MapLibre Native classes that are referenced.
- Only snap location to route if the location is within the
RouteControllerUserLocationSnappingDistance
- Add support for Swift Package Manager while dropping Carthage and Cocoapods.
- Initialization no longer tries to add mapbox://mapbox.mapbox-streets-v7 to all mapstyles.
- Removed implicit default dependencies on MapBox tileservers by requiring explicit styles URLs in more places.
- Merged in #45.
- BREAKING: Removed
MLNStyle
extensions referencing non-functioning MapBox styles, e.g.MLNStyle.navigationGuidanceDayStyleURL
. - Added
Day/NightStyle(styleURL:)
which takes an explicit URL to a hosting tileserver style. - Added
Day/NightStyle(demoStyle: ())
as an explicit alternative when the user doesn't have a tileserver handy. This uses MapLibre's demo style and is intended for testing and demonstration use only. - Deprecated
DayStyle()
/NightStyle()
initializers because they were backed by an implicit tile service. If these default styles are still used, they'll now use the MapLibre demo style. NavigationViewController
now expects explicit style URLs withNavigationViewController(route:dayStyleURL:nightStyleURL:...)
or NavigationViewController(route:dayStyle:nightStyle:...)` and the existing initializer, which allowed "default" styles, is deprecated and uses the MapLibre demo styles.
- Fix: NavigationViewController was not re-routing when the user went off route.
- Merged in #47.
v2.0.0
- Upgrade minimum iOS version from 11.0 to 12.0.
- Upgraded dependencies to support iOS 12.0
- With this upgrade it is possible to build it with Xcode 13.4.
v1.0.7
- Rerouting logic changed
- Routes that are found when requesting a new route that are slower but more than 90% the same geometry will get applied. This is done to account for traffic on the route that could change the ETA dramatically
- Added
rerouteReason
parameter indidRerouteAlong
RouteControllerDelegate
so the client can react accordingly - Added option to skip check for rerouting in
RouteController
where route should have 10+mins left before fetching a new route, calledshouldCheckForRerouteInLastMinutes
- Moved & renamed
RouteControllerProactiveReroutingInterval
to be an instance property ofRouteController
so the client can easily set this per route controller - Added
shouldReturnTestingETAUpdateReroutes
property toRouteController
as an easy way to test an ETA update client-side. It uses two of the same test-routes between52.02224357,5.78149084
and52.03924958,5.55054131
with different ETA's to easily see the ETA change happen in the client's UI