23.0¶
Links to the API Reference can be found here
23.0.1 (2023-08-23)¶
Bug Fixes¶
- Android: Fix removeMapObject removing object with wrong ID
- Audio: Fix get available voices including duplicate voices
-
Audio: Fix TTS lang codes
This fixes a problem where some of the TTS voices would not be available due to changes in TTS lang codes.
-
Core: Fix truncating long utf strings
Fixes a crash that would happen if the UTF strings in custom place description were too long and wrongly truncated.
-
Core: Store compiled OpenGL shaders to reduce memory leaks in OpenGL
-
iOS: Fix crash if SYNavigationObserver is destroyed inside of another SYNavigationObserver delegate
This fixes some cases in which the app would crash on CarPlay as the signals were not properly disconnected.
-
Map: Do not reset previous user traffic sign settings when setting new ones
-
Map: Do not show unlimited allowed speed on maps with 255kmph as replacement value
After some changes in speed limit evaluation, it would happen that the value 255 (which translates to unlimited in this case) would be drawn on the map when cruising the German Autobahn. This has now been fixed to follow the previous behavior - no speed limit is drawn. From SDK24, there will be a sign that shows the "End of speed limit" sign.
-
Map: Fix reading road offsets
Fixes a crash.
-
Navigation: Fix order of transit countries on route
From now on, the transit countries that can be queried from the route will be in the order as you pass through, not in alphabetical order.
-
Routing: Fix cancel route compute
It would sometimes happen that after computing a long route and cancelling the compute, it would not cancel computing of alternative routes. This has now been fixed.
-
Routing: Fix crash when online route doesn't have geometry of an avoid restriction
23.0.0 (2023-06-22)¶
Bug Fixes¶
-
Android: Add try catch around system's DownloadManager.query() functions
This change should prevent crashes while downloading maps on several Xiaomi devices.
-
Android: Fix getAvailableVoiceList ANR issues by moving some work off the main thread
-
Android: Fix nullptr check in MakeWaypoint
This fixes a crash.
-
Android: Fix playing TTS sounds with correct audio usage
- Audio: Play audio notification for incidents in distance based on user settings
- Core: Fix crash during sdk deinit caused with invalid this pointer of CSelectionManager in lambdas
- iOS: Fix ignored sound settings for Vehicle Aid and Vehicle Zone
-
Map: Correctly set second-to-last point of geometry
The last point of the geometry is not explicitly stored unless the road's ToPosition is invalid (dead end roads). This was causing issues when selecting points required to evaluate U-Turns.
-
Map: Do not reload maps when internet connection changes in offline mode
-
Map: Fix build route junction arrow geometry
Fixes a crash while building the geometry of junctions.
-
Map: Fix map matching jumping to opposite direction
This should filter out anomalies in GPS positioning and the position arrow should jump around less. This also decreases camera rotation when heading changes drastically.
-
Map: Keep heightmap cell context during whole processing
- Navigation: Change "krzywa" to "zakręt" in Polish TTS voices
-
Navigation: Do not execute full recompute on first iteration
Full recompute should be executed after several recomputes that try to connect to the previous route.
-
Navigation: Filter consequent hazmats warnings
From now on, the audio notification should not notify about each hazmat class separately.
-
Navigation: Fix appearing of wrong Vehicle Aid warnings on some roads
Wrong Vehicle Aid warnings should no longer appear on roads that had different warnings in different directions.
-
Navigation: Handle running poi on route analyzer task during SDK deinitialization
Fixes a crash during deinit.
-
Navigation: Possible fix for crashing traffic sign analyzer during sdk deinitialization
-
Navigation: Use distance settings for custom incidents
Audio notifications for custom incidents are now correctly sent accordint to the value set by integrator.
-
Places: Do not renew index file if new custom places instances were added without reindexing
- Places: Fix custom places database access during db shutdown
-
Routing: Calculate Camper ETA based on Car speed restrictions
Setting max speed lower than 130kmh for car vehicle type now works and is taken into account when calculating route duration.
-
Routing: Correctly determine element directions at waypoints
Fixes a bug when compute would send you backwards on a one-way street when reaching a waypoint.
-
Routing: Correctly evaluate right turn for pedestrian
Fix bug that was causing every right turn for pedestrian to be evaluated as continuing straight instead.
-
Routing: Fix u-turns for guided route compute
If there had been a u-turn in a Guided route, weird polylines have been generated. This has now been fixed.
Features¶
-
Android: Add content security flag to Initialization
We have added a parameter
contentSecurityEnabled
to the initialization function. By default, it is set to false. No change is necessary if you do not use signed maps. -
Android: Add embedded public keys for map validation
Due to the point above, if using signed offline maps, you might want to specify your own keys. Four default keys have been added to the Android manifest, too.
-
Android: Add map provider tag to map version
When requesting country or region details, you will now receive a
MapProvider
object alongside theMapVersion
. -
Android: Move getter for RouteEventNotificationsSettings and its child classes into NavigationManager instance. Settings classes constructors are not public anymore.
-
Core: Implement Uri whitelist security feature
In order to communicate only with online services that are trusted to be secure: SygicMapsSDK will create connections only to URL domains specified in JSON config in the Online section. An error will be reported when attempting to connect to other domains.
-
Core: Implement trusted storage folders
More information in Breaking Changes section
-
iOS: Add content security flag to initialization
We have added a parameter
contentSecurityEnabled
to the initialization function. By default, it is set to false. No change is necessary if you do not use signed maps. -
iOS: Add map provider tag to map version
When requesting country or region details, you will now receive a
SYMapProvider
object alongside theSYMapVersion
. * iOS: Fix misprints, improve delegates naming for SwiftFurther detailed in the Breaking Changes part.
-
iOS: Provide default public sign2 keys to context when user does not add any keys and security is enabled
New default map signing keys have been added to the Info.plist file. These might come in handy when using the contentSecurityEnabled parameter during initialization.
-
iOS: Set minimum supported iOS version to 12.0
- Map: Implement new Speed Camera Incidents Provider, API Connector and multiple provider configuration
- Map: Remove deprecated setlogistic icons functionality
- Navigation: Add Default Speed Limits to the SpeedLimitAnalyzer
- Navigation: Make incident listener send a list of incidents instead of one item
-
Routing: Change speed limit evaluation in ETA
If there is a speed limit defined in the map, that one is compared to the max speed set by the user and the lower value is used in Navigation manager and map view. If there is no speed limit in the map, the value from the countries info file will be used and compared to the max speed set by user.
Performance Improvements¶
- Search: Use memory buffered write when creating index file
BREAKING CHANGES¶
-
Android: Static getSettings method changed to instance method. Constructors of RouteEventNotificationsSettings and its child classes are no longer visible. Use getSettings method of NavigationManager instance.
To migrate, use
NavigationManagerProvider.getInstance().get().getSettings
instead ofNavigationManager.getSettings
. -
Core: Storage Folders has been split to three parts: Trusted, External and Assets. This has to be specified in the initialization configuration
-
iOS: Rename:
SYNavigationDelegate: didStreetChange to didChangeStreet,
SySearchFilter to SYSearchFilter,
SYRoadLogisticRestrictionOtherLenght to SYRoadLogisticRestrictionOtherLength,
SYTruckAidImportance to SYVehicleAidImportance,
SYMapTrafficSignFormTypeTruckAid to SYMapTrafficSignFormTypeVehicleAid.
SYPositioningDelegate (fix Swift naming):
didUpdate to didUpdatePosition,
didUpdate to didUpdateCourse.
SYNavigationDelegate (fix Swift naming):
didPassWaypointWith to didPassWaypointWithIndex,
didFind to didFindBetterRoute,
didUpdate:with: to didUpdateRoute:withStatus:
didUpdateRecomputeProgress:with: to didUpdateRecomputeProgress:withStatus:
-
iOS: Minimum supported iOS version changed from 11.0 to 12.0