Skip to content

26.0

Links to the API Reference can be found here

26.0.1 (2024-07-02)

Bug Fixes

  • Map: Evaluate environmental zones in logistic attributes

    If your vehicle's emission category does not conform to the road's minimal category, the road will now be shown as impassable with default NoTruck image.

  • Map: Fix calculation of camera frustum planes making vehicle object invisible

    This fixes a case where if the center of the camera is offset, the vehicle indicator would disappear.

  • Map: Fix crash where referenced TextureAtlas was deleted while still in use

  • Map: Resolve SkinLoader crash on recource holders reset
  • Map: Improve texture atlases management to suppress icons blinking
  • Navigation: Fix maneuver from start distance when route has multiple waypoints
  • Navigation: Fix truck and RV speedlimits on motorways
  • Navigation: Resolve crash on exiting with simulated position
  • Navigation: Use vehicle heading in scout recompute

    Use the vehicle heading when searching for a better route.

  • Position: Fix changing speedlimit in tunnel simulation

  • Routing: Create instruction for internal intersection only if more than one way is possible
  • Routing: Fix wrong U-turn instruction

Features

  • Android: Add completion callbacks for setVoice and playSample calls
  • Android: Add support for KPRA and Wheels count
  • Android: Add voltage range support for EV charging
  • Android: Bump minSdkVersion to 24
  • Android: Change EVECode to RouteComputeStatus in nEVRangeError
  • Android: Convert Java classes from Android Position module to Kotlin
  • Android: Extend MapInstaller errors to include native errors
  • Android: Improved error handling in MapInstaller
  • Android: Navigation Manager inferface was re-written to be asynchronous
  • Android: Positioning sync methods replaced with async versions
  • Android: Refactor Java classes from Routing module to Kotlin
  • Android: Remove deprecated RouteWarning constructors
  • Android: Removed deprecated Truck Aid functionality from interface
  • Android: Rename setRestrictionDisplaySettings function to setRouteRestrictionSettings
  • Android: Remove old route restriction settings methods and classes
  • Android: Add useTraffic option to RoutingOptions
  • iOS: Add support for KPRA and Wheels count
  • iOS: Add completion callbacks for SYVoiceCatalog setCurrentVoice and playSample
  • iOS: Add useTraffic option to SYRoutingOptions
  • iOS: Add voltage range parameters to SYEVConnector
  • iOS: Build with Xcode 14.2
  • iOS: Make SYNavigationManager methods asynchronous, remove deprecated classes
  • iOS: Make SYPositioningManager methods asynchronous
  • iOS: Make SyMapView initializers nullable
  • iOS: Propagate low-level NSError from SYMapInstaller to public interface
  • iOS: Remove deprecated properties from SYRoute
  • iOS: Remove deprecated RouteWarning initializing blocks
  • iOS: Use SygicAuth 2.0
  • Navigation: Integrate Incident API version 4 with incident GUIDs instead of legacy IDs
  • Navigation: Provide sign post colors in directions interface
  • Online: Accept empty Speed cameras URL in order to disable downloading speedcams database

    If the integrator would not like to download the speed camera database by default, it is possible to set an empty url override in JSON config to ensure that the database will not be downloaded.

  • Places: Add unknown value to EV connector type and power type

  • Routing: Remove conversion from legacy ITF format
  • Routing: Unify routing behaviour across vehicle types

BREAKING CHANGES

  • iOS: SygicMaps requires SygicAuth 2.0.
  • Android: Bumping the minimum Android SDK version from 21 to 24 will break projects that use our SDK and still have minSdkVersion which is less that 24
  • iOS: Remove sync SYRoute.transitCountries, use async getTransitCountriesInfoWithCompletion instead.

    Remove SYRoute.options, use options from request.

    Remove sync SYRoute.getRouteGeometry, use async getRouteGeometryWithAltitude instead.

  • Android: Add error handling for added MapOutOfSync error code

  • Android: Delete copy constructor of RoutingOptions class, use .copy() instead

    Remove deprecated synchronous methods Route.getRouteGeometry() and getTransitCountries(), use asynchronous counterparts instead. Separate route avoids to dedicated class RouteAvoids using public data members instead of numerous getter and setter methods.

  • Routing: Deprecated function Router.CreateBriefJsonFromItfFile() was deleted, use BriefJson format instead

  • Android: Renamed public interface function setRestrictionDisplaySettings to setRouteRestrictionSettings
  • Android: Changed parameter type in public interface callback function onEVRangeError
  • Android: Removed deprecated Truck Aid functionality from interface, use Vehicle Aid alternatives instead
  • iOS: Framework is now built with Xcode 14.2, which is based on LLVM 14. Newer version of compiler can potentially introduce undesirable behaviour due to different optimizations at compile time.
  • iOS: Completion blocks of SYMapInstaller methods deliver NSError instead of SYMapInstallerResult.

    SYMapInstallerDelegate.didFinishResumedInstallWithResult is replaced with didFinishResumedInstallWithError. SYMapInstallerResult is used as error code for NSError with domain SYMapInstallerErrorDomain.

  • Android: LoadResult was changed from enum class to sealed class

  • Android: GeoboundingBox.union() returns new GeoBoudingBox instance instead of changing the calling one

    GeoCoordinate's, GeoPosition's and GeoBoundingBox's function isValid() is changed to read-only property

  • Android: Added new enum values in RouteRestrictionDisplaySettings.ViolationType, TrafficSignSettings.SignType, RestrictionInfo.RestrictionType

  • iOS: Change SyMapView initializers from nonnull to nullable
  • iOS: SYPositioningManager methods became asynchronous: setting data source, start/stop positioning, start/stop NMEA log. SYPositionDataSource and all derived classes can be created only with asynchronous methods createWithCompletion.
  • Android: Replace synchronous methods of position and simulator classes by their asynchronous counterparts.
  • Android: Remove/rename deprecated public methods in MapView and MapDataModel and remove old deprecated classes
  • iOS: Deprecated RouteWarning initializing blocks have been removed as affected structures are not meant to be constructed by integrators.
  • Android: Deprecated RouteWarning constructors have been removed as affected structures are not meant to be constructed by integrators.
  • Android: Replace synchronous NavigationManager methods by their asynchronous counterparts
  • iOS: Replace methods of class SYNavigationManager startNavigationWithRoute and stopNavigation with asynchronous versions.

    Remove property of class SYNavigationManager isNavigating, add property delegate (SYNavigationManagerDelegate) instead.

    Replace property of class SYNavigationManager backgroundNavigationEnabled with async methods: getBackgroundNavigationEnabledWithCompletion:, setBackgroundNavigationEnabled:completion:.

    Remove property of class SYNavigationManager batteryStatusUpdateEnabled (BOOL).

    Remove deprecated class SYTruckAidInfo.

    Remove deprecated method of protocol SYNavigationDelegate navigation:didNotifyTruckAid:.

    Remove deprecated method of protocol SYNavigationDelegate navigation:didUpdateIncident:.

    Remove deprecated method of protocol SYNavigationAudioFeedbackDelegate navigation:shouldPlayTruckAidAudioFeedback:.

    Replace property of SYPlaceLink category with categories (make array instead of single value).

    Rename method arguments in class SYRouteExplorer, change withCompletion to completion.

Changes to the routing interface

There have been significant changes to the vehicles used in Routing Options classes that are passed to the RouteRequest. This is to ensure that not only Truck-like vehicles can have dimensional restrictions and to be more in sync with map providers. Vehicle profiles have been created for this purpose. From now on, the Routing Options class accepts a VehicleProfile that consists of several traits:

  • General Vehicle Traits
  • Hazmat traits
  • Dimensional traits
  • Powertrain Traits

General Vehicle Traits

This category consists of maximal speed, year of manufacture, vehicle type (car/truck/bus/motorcycle/motorhome) and specialized vehicle attributes, such as if the vehicle is taxi or HOV.

Hazmat Traits

This category specifies hazardous materials and tunnel restrictions.

Dimensional Traits

Here you can set the payload capacity, height, weight, length, width and add additional instances of trailers or semi-trailers which are specified as separate objects having their own attributes (such as number of axles or wheels).

Powertrain Traits

This category defines whether the vehicle is electric or has a combustion engine. For the combustion profile, fuel type, emission standard and consumption data can be defined.

The electric powertrain is much more robust, consisting of Battery specifications, charging preferences, connectors and consumption data which all play a role in the Automatic EV Compute.