Skip to content

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 the MapVersion.

  • 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 the SYMapVersion. * iOS: Fix misprints, improve delegates naming for Swift

    Further 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 of NavigationManager.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