21.0¶
Links to the API Reference can be found here
21.0.3 (2022-07-08)¶
Bug Fixes¶
-
Map: Clear heightmap cells cache when app goes to a background
The map would not be visible on lower zoom levels when returning from background. Mostly reproducible on iOS devices only. This has now been fixed.
-
Android: All singleton managers provided by Provider classes are properly destroyed with SDK's SygicContext
- Android: Do not require appKey/clientID if external Auth is used
- Android: Fix starting nmea log simulator
- iOS: Fix rare crash on iOS 12 occurring randomly after user turns off the screen
- iOS: Set logistic info with only valid speed limit to map and navigation analyzers
- Map: Fix crash at calling the front() function for an empty container
- Map: Load feature bits from POI file
- Map: Suspend search library before unloading FTS
- Navigation: Fix jumping distance for TruckAid analyzer, filter same successive problems
- Places: Fix incorrect conversion to iso code
- Places: Handle concurrent reading and writing to custom places database
- Places: Ignore failed fetching places if there are available from another provider
- Routing: Do not free traffic avoids early
21.0.1 (2022-06-14)¶
Bug Fixes¶
- Android: Downloaded files are properly deleted from temp folder
- Android: Fix http exception during authentication
- Places: Set language provided by MapManager to offline Custom Places
- Routing: Fix recompute crash
21.0.0 (2022-06-06)¶
Bug Fixes¶
- Android: Try to retry request with new access token if old token was rejected by server with 401
- Map: Avoid crash at the GetCityCenters function is called
- Map: Correctly calculate logistic offset
- Search: Add timeout for online search
Chores¶
- Android: Use Android NDK 23.1 to compile C/C++ code
Features¶
-
Android: Add ability to switching visibility of place categories in runtime
It is now possible to change the visibility of specific Place (POI) categories using the
PlacesManager
. -
Android: New SearchManager interface including support for custom places
The search engine has been re-worked. It now supports Custom Places search.
-
Android: Refactor interfaces for hazmat settings
As the usage of hazardous materials interface was not easy to use, it has been almost completely re-worked. You can now use a new HazmatSettings class and choose from two available constructors to conveniently specify hazmats. More below in BREAKING CHANGES.
-
Android: Remove account management, add Auth interface which may be passed into SygicContextInitRequest
-
iOS: Add ability to switching visibility of place categories in runtime
It is now possible to change the visibility of specific Place (POI) categories using the
SYPlacesManager
. -
iOS: Add configurable search interface, add Custom Places search
The search engine has been re-worked. It now supports Custom Places search.
-
iOS: Move hazardous material cargo settings into new class SYHazmatSettings
As the usage of hazardous materials interface was not easy to use, it has been almost completely re-worked. You can now use a new
SYHazmatSettings
class and choose from two available constructors to conveniently specify hazmats. More below in BREAKING CHANGES. -
iOS: Move to XCFramework format
More in BREAKING CHANGES.
-
iOS: Remove SYRoutingOptionsTruck, move all properties to SYRoutingOptions
As the old interface for setting truck options has been cumbersome, we have decided to unify everything into SYRoutingSettings, similarly to the Android interface.
-
iOS: Use latest revision of CMake toolchain for iOS
-
Licensing: Replace existing Licensing with the Offline License Key
From now on, it is necessary to use an "Offline License Key" (OLK) in the init configuration. If you do not have any, please ask your customer project manager. The usage of the OLK allows using the SDK without an internet connection even on the first initialization, as the license is stored in the OLK. It also ensures a faster initialization as the engine does not wait to download and verify a license.
-
Map: Add option to switch Online Map Providers during runtime
It is now possible to change the online map provider (for example from TomTom to OSM maps) during runtime. Please note that you need to have a correct license in order for this feature to work.
-
Map: Allow to set clustering radius for map places
It is now possible to define your own clustering radius for MapPlaces.
-
Map: Read multilang online maps
If the maps support it, changing of the MapLoader's language is now going to change the language of the online maps, too.
-
Navigation: Force scout compute after 50km
-
Places: Add an option to import Custom Places from JSON
It is now possible to import Custom Places using your own JSON file. * Places: Add Individual Places
It is now possible to add "Individual Places" into the Custom Places database directly from code, using the
PlacesManager
/SYPlacesManager
. -
Places: Add support for configuring of custom places categories
- Places: Download offline Custom Places data to SDK
-
Routing: Add ability to road to provide altitude with geometry
When requesting route geometry, you can now specify whether you want to get the information about altitude of the route geometry points. Please note that altitude is only available in offline maps.
-
Routing: Implement ability to disable endpoint protection
-
Routing: Inject URL into online routing
It is now possible to override the online routing URL during runtime.
-
Search: Add option to initialize Custom Places Search through SDK
BREAKING CHANGES¶
- Android: Hazmat settings interfaces in MapView, LogisticInfoSettings and RoutingOptions classes were refactored and are now using new HazmatSettings class
-
iOS: Settings related to hazardous material cargo are represented by SYHazmatSettings.
In SYRoutingOptions, properties tunnel and material replaced by hazmatSettings. In SYVehicleProfile, property hazmat replaced by hazmatSettings. In SYMapLogisticInfoSettings, properties hazmatTypes and tunnelType replaced by hazmatSettings. Fixed misprint in SYRoadLogisticRestrictionHazmatItTime, new name is SYRoadLogisticRestrictionHazmatInTime.
-
iOS: Framework is now built with Xcode 13.2, which is based on LLVM 12.
Newer version of compiler can potentially introduce undesirable behaviour due to different optimizations at compile time.
-
Android: Maps SDK is now built with Android NDK 23.1, which is based on LLVM 12.
Newer version of compiler can introduce undesirable behaviour due to different optimizations at compile time.
-
Map: An internal debug method showDebugView() has been removed from the interface.
There is no replacement. To migrate your project, stop using the method.
-
iOS: SDK is no longer providing authentication interface and account related operations.
Corresponding methods were removed from SYOnlineSession: signIn, signOut, state, getUserProfile, buildHeaders. If necessary, account management can be implemented with SygicAuth framework and exposed to SDK using SYAuthProvider protocol. SYOnlineSession.sharedSession became nonnull.
-
Android: AuthManager was removed, SDK is no longer responsible for account sign-in, sign-out operations.
Use your own sign-in, sign-out implementation if needed.
-
Map: skin_default_deprecated.xml skin file was removed, use the skin_default.xml as a base for your skins.
- iOS: SYMapInstaller becomes a singleton because installed map data is shared between many SDK components, and managing this functionality individually per-instance doesn't bring advantages.
- Licensing: The license is no longer downloaded inside of the SDK. Instead, it is mandatory to pass it to the SDK as a part of the JSON config. Not doing so will result in failed SDK initialization.
- Android: Android: Enum classes are now value-less. Removed unused value SPECIAL_ADDRESS from enum class MapResultComponent.
- Routing: Removed obsolete options from interface to disable delivery zones and last mile, there were completely replaced by ability to disable endpoint protection
- iOS: Framework format is changed to XCFramework.
-
iOS: The latest revision of CMake toolchain for iOS removes following compilation flags:
objc-abi-version=2
,omit-frame-pointer
,
as they are considered to be outdated for use with modern Xcode and 64-bit CPU architectures. The compiler might produce slightly different results and potentially an unexpected behaviour, therefore the BREAKING CHANGE notation is added.
-
iOS: SYRoutingOptionsTruck is removed, all options related to routing are available in SYRoutingOptions.
- iOS: SYRoutingErrorIncompatibleEVStation renamed to SYRoutingResultIncompatibleEVStation, also note that all SYRoutingResult values become shorter in Swift, e.g. .resultSuccess becomes .success.