Skip to content

27.0

Links to the API Reference can be found here

27.0.1 (2024-09-25)

Bug Fixes

  • Map: Evaluate logistic restriction "Direction in time"
  • Map: Use preferred LOD for route segments calculation and clear route geometry manager when traffic on route has changed
  • Navigation: Read road data for VehicleZoneAnalyzer on worker thread

27.0.0 (2024-09-24)

Bug Fixes

  • Android: Fix active notifications in navigation manager

    This fixes a bug introduced in SDK26 which caused notifications to stop working after adding two or more active listeners.

  • Android: Fix continuation search for categories

    Properly fill continuation token when using online category search.

  • Android: Fix crashes when converting non-UTF character stream to jstring

  • Android: Fix playing audio when audio focus was already lost
  • Core: Disconnect signals in FacadeImpl destructor before receiving OnMapChanged signal to destructed object

    Fixes a crash.

  • iOS: Correctly register SYNavigationObserver after allocation

    This change fixes proper registration of Navigation observers so that notifications work.

  • iOS: Fill SYTask.statusInfo in case of error in SYVoiceCataog.getAvailableVoicePackages

    Properly fill in error information if requesting available voice packages fails.

  • iOS: Fix 'unsupported Swift architecture' build error for x86_64 simulator architecture

  • iOS: Fix random deadlock in Dispatcher thread after SYAudioManager stopOutputAndClearQueue during recorded voice playback
  • Map: Correctly show danger turn arrows on second map view

    This fixes a bug where danger turn arrows would be shown in the opposite direction if they were to be shown in any other than the first created MapView.

  • Map: Do not draw irrelevant logistic markers along route

    We have now introduced a filtering algorithm that will hide irrelevant restriction markers along the computed route while navigating.

  • Map: Fix memory leak in address points data per view

  • Map: Fix memory leaks in map reader file chunk cache
  • Map: Handle extreme values of camera rotation to avoid black map
  • Map: Make BreadCrumbs data manipulation non-blocking
  • Map: Make SetUnits function asynchronous to alleviate Dispatcher thread
  • Map: Retrieve composite dimensional restrictions from logistic info
  • Map: Validate invalid road offsets to prevent crashes
  • Navigation: Add timeout for retrieving online incidents

    It would sometimes happen that requesting online incidents for a long route would take longer than usual, mostly beacuse of poor internet connection. If this happened, not even the offline incidents such as speed cameras from the offline database would not be returned. We have now fixed this.

  • Navigation: Always say instruction after passing the waypoint

    In some cases, when the waypoint was placed in a place where the engine that generates instructions also generated a lot of other instructions such as turns or roundabouts, the waypoint notification would not be told. This has now been fixed.

  • Navigation: Change "linke/rechte" to "linken/rechten " in German TTS voice

  • Navigation: Change "Natychmiast" to "Następnie" in Polish TTS voice
  • Navigation: Correctly adapt map speed limit to max vehicle speed
  • Navigation: Discard recomputes based on old navigation route

    There may be a scenario where a user is navigating along a route 1 and deviates from it. That action triggers a recompute for route 1. Say the route is long and recompute takes a long time. Meanwhile, the user cancels the route and computes a new, shorter route 2 while the route 1 is still being recomputed. The route 2 is set for navigation, just until route 1 is done being recomputed and will override route 2. This has now been fixed and recomputes will be discarded in case the route is no longer an active navigation route.

  • Navigation: Fix calculating tunnelLengthToFinish in Direction analyzer

    If there was an direction inside of a tunnel (for example a waypoint), the isInTunnel parameter of the direction would be false when approaching the direction. This has now been fixed.

  • Navigation: Fix cyclic dependencies in navigation analyzers causing too high memory usage

  • Navigation: Fix detection if road is open for some logistic attribute combinations
  • Navigation: Fix detection of short dead end roads
  • Navigation: Fix false warning of opposite directions on roundabouts
  • Navigation: Fix repeating hazmat warnings
  • Navigation: Fix resolving speed limit for danger turns in free drive mode
  • Navigation: Fix starting position updating while positioning was already started before setting new position source
  • Navigation: Read dimensional restrictions also for cars on Tomtom maps
  • Navigation: Show vehicle aid warnings only for roads with same direction as current trajectory
  • Online: Fix crash with duplicate downloads while attaching saved downloads
  • Places: Fix handling of custom places installation with empty list of custom categories
  • Places: Properly handle error case while reading name of custom place
  • Routing: Do not use traffic for guided routes and always use partial recompute
  • Routing: Emit delivery zone warnings strictly for trucks
  • Routing: Evaluate prohibited entry for truck
  • Routing: Filter duplicate charging stations
  • Routing: Fix crash in colors for direction
  • Routing: Fix filling of road numbers when next road is internal or ramp
  • Routing: Fix negative charging duration
  • Routing: Fix wrong ETA for pedestrian routing
  • Routing: Process less traffic data during NAP calculation
  • Routing: Provider setting no longer breaks EV station search
  • Routing: Remove duplicate low battery warning from route summary
  • Routing: Remove POIs from EV algorithm which are mapped on closed roads
  • Routing: Remove road limit from isochrones

    When calculating EV range, there was a limit on how many roads can be taken into account so that we do not use all the resources available on the device. This, howewer, has limited the EV range calculation so this limit was removed.

  • Routing: Set waypoint passed flag to routeplan to correctly store route plan after recompute

  • Search: Set entry point in custom place result
  • Search: Prevent search from failing due to error in POI reader
  • Traffic: Correctly lock TrafficOnRoute structures to avoid race condition

Features

  • Android: Add createRouteRequestFromJSONString into Router class. createRouteRequestFromJSONString in RouteRequest was deprecated

    Please use the new method from Router as the static one from RouteRequest may have caused crashes as it could be called even without an initialized SygicMapsSDK engine.

  • Android: Cancelling interface for explorer functions

    It is now possible to create tasks from explorer functions and cancel them.

  • Android: Injectable downloader

    When initializing the SDK, it is now possible to insert a custom-defined downloader to override our implementation of the system downloader which takes care of downloading offline maps and voices.

  • Android: Move openGpsConnection() from SygicEngine to PositionManager

  • Android: Remove Tracking interface
  • Android: Rename DistanceUnits.MilesFeets to MilesFeet
  • Android: Rewrite audio manager to Kotlin, effectively using Kotlin enums instead of IntDefs
  • Android: Rewrite Navigation event notifications to kotlin, effectively using enums instead of IntDefs
  • Android: Rewrite Navigation manager to kotlin, effectively using enums instead of IntDefs
  • Android: Rewrite OperationStatus to Kotlin, effectively using Kotlin enum instead of IntDefs
  • Android: Rewrite SygicContext to Kotlin and remove deprecated init with individuals parameters
  • Android: Update Gradle to 8.9, AGP to 8.5.1, Kotlin to 1.9.24, Java to 17, to mitigate vulnerabilities
  • Android: Use Kotlin defined way to parcelize enums
  • iOS: Add error code SYMapInstallerResultMapsOutOfSync
  • iOS: Add kingpinToRearAxleLength and maxWheels to SYMapTrafficSignSettingsType
  • iOS: Improve cancelling for SYRouteExplorer and SYLocationExplorer operations
  • iOS: Rename SYAudioDistanceUnitsMilesFeets to SYAudioDistanceUnitsMilesFeet
  • Navigation: Add ability to enable premium incidents
  • Navigation: Correctly notify cumulative data in Explore charging stations function

    The function explore charging stations on route was the only one that did not report cumulative outputs in callbacks. This has been changed so that its behavior is on par with other explorer functions.

  • Routing: Add additional routing errors RoadLimitReached and LowMemory

  • Routing: Add routing settings validation
  • Routing: Allow disabling automatic adding of EV chargers

    In some use cases, the user may want to select all the charging waypoints manually. While this can be simulated by adding the chargers as waypoints to a regular route, the user would not get state of charge with which the chargers are reached. Instead, the option to use EV routing without adding charging stations automatically was added. There are no optimizations - at each manually chosen charging station, the vehicle will be considered charged to the desired state of charge if provided, and fully otherwise.

BREAKING CHANGES

  • iOS: Removed methods of SYLocationExplorer exploreChargingStationsAtLocation (version with vehicleProfile and version with route parameter), they were replaced with exploreChargingStationsAtLocation:options:completion:

    If SYTask (from SYRouteExplorer or SYLocationExplorer) is cancelled, completion will be called with ‘cancelled’ error code. Before this update, the completion was not called in case of cancel.

  • iOS: SYAudioDistanceUnitsMilesFeets was renamed to SYAudioDistanceUnitsMilesFeet

  • Navigation: All platforms: Callback funcion of RouteExplorer.exploreChargingStationsOnRoute() now returns complete set of found EV-stations and not only new ones.
  • Android: All explore functions now return Task.

    Task that is returned from MapInstaller functions now is in different package (same as explore functions Task)

  • Android: Distance.MilesFeets was renamed to MilesFeet

  • Android: Enums are parcelized by language defined way, instead of custom parcelization method
  • Android: To mitigate vulnerabilities, we have updated these parts of the library:

    Updated Java version from 8 to 17

    Updated Gradle Wrapper from 7.6 to 8.9

    Updated Gradle Plugin version from 7.4.0 to 8.5.1

    Updated Kotlin version from 1.7.21 to 1.9.24

    Updated compileSdkVersion from 33 to 34

    These updates may require changes in your build environment and dependencies.

  • Android: Tracking interface has beed removed as it is not needed anymore, without any replacement.

  • Android: Method openGpsConnection() was moved from SygicEngine into more suitable class PositionManager.
  • Android: SygicEngine.init() with individual parameters was deleted, replace it with init consuming SygicContextInitRequest

    Also, OnInit callback for SygicEngine.init() was changed from optional to mandatory.

  • Android: Removed NetworkSettings class and support. Network management is no longer supported by SDK and should be handled by integration application

  • Android: RouteEventNotification classed rewritten in Kotlin, effectively replacing their IntDefs with Kotlin enums
  • Android: Navigation Manager rewritten in Kotlin, effectively replacing Navigation and Traffic IntDefs with Kotlin enums
  • Android: AudioManager now contains enums instead of IntDefs. AudioSettings contains some renamed settings.
  • Routing: New compute results were added to iOS and Android interfaces. Due to invalid settings, routing may now fail in some cases where it previously succeeded.

    This can happen when calling EV Compute or Economic type of compute without a consumption curve, as these two types of compute rely on the curve and might produce unwanted results otherwise.