Skip to content

24.0

Links to the API Reference can be found here

24.0.2 (2023-08-21)

Bug Fixes

  • Map: Do not reset previous user traffic sign settings when setting new ones
  • Map: Fix crash in circle rendering when height is not available
  • Map: Free memory after map cache limits are reached
  • Map: Improve performance of City Center labels
  • Navigation: Fix memory leak when setting route for navigation
  • Navigation: Fix zone radars detection
  • Navigation: Remove the dot at the beginning of the warning in all TTS voices
  • Navigation: Fix memory leaks that happened in route waypoints
  • Places: Properly load and store external IDs of custom places
  • Position: Fix memory leak by calling destroy handle for each created road
  • Routing: Remove artifacts in EV station route part mapping
  • Routing: Update weight on waypoints in EV compute mode
  • Search: Fix crash caused by multiple launches reindexing over single dataset
  • Search: Fix potential indexing crash caused by invalid path for custom places index

24.0.0 (2023-07-26)

Bug Fixes

  • Android: Fix removeMapObject removing object with wrong ID

    Fixes a a bug where some map objects would remain visible after calling removeMapObject() on them.

  • Android: Suppress map flickering for all Mali-GXX chips on android 12 or higher

  • Audio: Fix TTS lang codes

    Fixes a bug where TTS translations would not be available for some languages.

  • Core: Fix truncating long UTF strings

    Fixes a crash when the UTF string would be incorrectly truncated.

  • Core: Store compiled OpenGL shaders to reduce memory leaks in OpenGL driver

    Fixes a bug where the OpenGL driver would leak memory on Android platform after switching between foregroung and background multiple times.

  • iOS: Fix crash if SYNavigationObserver is destroyed inside of another SYNavigationObserver delegate

  • Map: Fix reading road offsets
  • Map: Fix downloading maps when root path is on different partition than trusted root path
  • Navigation: Fix order of the transit countries on route
  • Position: Use only gps heading for vehicle animation in Dead Reckoning mode
  • Routing: Fix cancel route compute

    It would sometimes happen that the alternative routes would not be correctly canceled. This should no longer happen.

  • Routing: Fix crash when online route doesn't have geometry of an avoid restriction

  • Routing: Fix multiple issues with automatic and manual charging via points
  • Routing: Fix negative battery SoC on last way-points
  • Routing: Make EV cost of boat ferries to be zero kWh

Features

  • Android: Add Android interface for the new consumption curve

    Adds a new interface for the consumption curve, which allows you to set the consumption curve for all vehicles. This only works when choosing an economic route. You can find the consumptionData in the RoutingOptions() class.

  • Android: Add datasets support to CustomPlacesManager

    It is now possible to have multiple datasets of custom places and switch between them.

  • Android: Add option to change vehicle weight on waypoint

    From now on it is possible to change the weight of the vehicle on a waypoint. This is useful when planning a route with multiple waypoints where the vehicle weight changes. The route from the waypoint is calculated according to the weight that is set at the waypoint.

  • Android: Add support for custom places offline search with datasets

    To support the new Custom Places datasets completely, it was necessary to re-work the search mechanism. This introduced a Breaking Change, where the CustomPlacesSearchIndexingListener now has a new parameter dataset.

  • Android: Add support for installing map bundle from local folder

    Should you need to install offline maps from local data, you can now do so by using a MapBundle. This is useful when you need to install maps from a local folder, for example when you need to install maps from a USB drive. This makes it possible for you to install maps from a local folder, without having to download them from the internet. The maps will be fully functional and "synced" with the server once you connect to the internet. That means if the maps in the bundle are from May 2023 and the most recent maps on the server are also from May 2023, the check for updates function will not notify about a newer update. Please note that the MapBundle has to have a specific structure and has to be generated by the Sygic team.

  • Android: Use shared preferences for secure content storage and other settings

  • iOS: Add consumption curve to be able to compute eco route

    Adds a new interface for the consumption curve, which allows you to set the consumption curve for all vehicles. This only works when choosing an economic route. You can find the consumptionCurve in the SYRoutingOptions() class.

  • iOS: Add datasets support to SYCustomPlacesManager

    It is now possible to have multiple datasets of custom places and switch between them.

  • iOS: Add option to change vehicle weight on waypoint

    From now on it is possible to change the weight of the vehicle on a waypoint. This is useful when planning a route with multiple waypoints where the vehicle weight changes. The route from the waypoint is calculated according to the weight that is set at the waypoint.

  • iOS: Add possibility to search in specific custom places datasets

  • iOS: Add support for installing map bundle from local folder

    Should you need to install offline maps from local data, you can now do so by using a MapBundle. This is useful when you need to install maps from a local folder, for example when you need to install maps from a USB drive. This makes it possible for you to install maps from a local folder, without having to download them from the internet. The maps will be fully functional and "synced" with the server once you connect to the internet. That means if the maps in the bundle are from May 2023 and the most recent maps on the server are also from May 2023, the check for updates function will not notify about a newer update. Please note that the MapBundle has to have a specific structure and has to be generated by the Sygic team.

  • Map: Add bundle-compatible localization feature to Map Installer

  • Map: Add support for installing map bundle from local folder
  • Routing: Add ability to enforce EV preferences

    It is now possible to "enforce" some of the EV preferences. As of now, the route is calculated even if some of the charging stations do not meet the preference criteria and returns a Success with warnings status. However, if you enforce the power range and the engine does not find a suitable charging station on the route, the route calculation will fail.

  • Routing: Allow setting consumption curve for all vehicles

  • Routing: Allow to change vehicle weight on waypoints

BREAKING CHANGES

  • Map: Removed deprecated map installer metadata processing. When migrating from SDK 16 and older, maps will be processed without metadata.
  • Android: Removed support for EncryptedSharedPreferences. Maps installed with secure content enabled won't work and have to be reinstalled
  • Android: New parameter (dataset) was added for CustomPlacesSearchIndexingListener methods
  • iOS: Parameter (datasetId) was added to SYCustomPlacesSearch and SYOnlineMapSearch creation and SYCustomPlacesManagerDelegate methods. getCategoriesWithCompletion is no longer available. You can get the categories by calling getInstalledDatasets and each dataset has its own categories member.

    The ID of the default dataset is "bf19e514-487b-43c4-b0df-9073b2397dd1"

  • iOS: Installation of custom places via SYCustomPlacesManager requires a new parameter: dataset.

    Swift: custom places error codes and error domains are available under SYCustomPlacesError.

  • Android: Removed methods without dataset parameter from CustomPlacesManager. Use methods with dataset parameter instead.

    installOfflinePlaces has been changed to installOfflineDatasets

    getInstalledCountries has been changed to getInstalledDatasets

    InstalledCountriesListener has been changed to InstalledDatasetListener

    The ID of the default dataset is "bf19e514-487b-43c4-b0df-9073b2397dd1"

    Also, the getCategories() function no longer exists. You can get the categories by calling getInstalledDatasets() and each dataset has its own categories member.

  • Routing: Naming of couple of attributes in EV Preferences has been slightly modified

    enforceDCChargers -> preferDCChargers

    enforceNonstopChargers -> preferNonstopChargers