Release Notes

3.1.0 21/03/2018

NEW FEATURES

  • [Android and iOS] Introduced support for secure network connections over HTTPS.

BUG FIXES & MINOR IMPROVEMENTS

  • [Android] Multiple bug fixes associated with Android 7 Nougat
    • Real navigation - SKNavigationManager.updateroutestate is called very frequently
    • Simulation mode - when a simulated route is set, several frames are skipped during the route simulation.
  • [Android and iOS] Fixed traffic-related crashes
  • [Android and iOS] Updated our traffic platform to reflect the changes made by our traffic provider - INRIX
  • [Android] Fixed issues with displaying and time loading of custom annotations
  • [iOS] Introduced multiple bug fixes associated with map flickering issues
    • Fixed the map flickering issue from zoom level 10
    • Road network flickering between zoom levels 7 - 8 was fixed
    • The flickering issues associated with POIs, roads, and shapes was fixed.
    • Provided fix for flickering POI icons, building names and house numbers.
  • [Android] Fixed the metadata download issue
  • [Android] Fixed issue with requestScreenshot method which returned blank screenshot
  • [Android and iOS] Added new methods
    • Gets the route turning points as GPS coordinates/Mercator coordinates for the current route.
      • -getRouteAsGPSTurningPoints()
      • -getRouteAsMercatorTurningPoints()
    • Gets the route turning points as GPS coordinates/Mercator coordinates for the route identified by its unique ID.
      • -getRouteByUniqueIdAsGPSTurningPoints(int)
      • -getRouteByUniqueIdAsMercatorTurningPoints(int)
  • [Android] Introduced the possibility of setting a particular map version at fresh install setRequestedMapVersion
  • [Android and iOS] Attributions used by the SDK were changed from "Powered by Scout" to "Powered by Telenav" and from TextView to ImageView. Also, top-middle and bottom-middle positions were added.
  • [Android] Introduced new methods
    • getEnvironment() - Returns the environment on which the SDK is running
    • getLibraryType() - Returns the SDK version
    • getMapVersionFileName() - Returns the name of the SDK version file name used
    • getSDKVersion() - Returns the SDK version
    • isTrafficUsed() - Returns SDK traffic status

See full changelog for iOS SDK

See full changelog for Android SDK

3.0.3 21/02/2017

NEW FEATURES

  • [Android and iOS] Added a new API for rerouting from the last matched position. Use this when the route is calculated using a GPX file and a rerouting is needed for navigating on the GPX route from current position.
  • [Android] Added method setAttributionsLayout. The method can be used to move the Scout and OSM attributions in the four corners of the screen by using the SKAttributionPosition attribute with the values BOTTOM_RIGHT|BOTTOM_LEFT| TOP_LEFT| TOP_RIGHT.
  • [Android] Added methods for checking the SDK versioning, the name of the SDK version file name, and the traffic status.

BUG FIXES & MINOR IMPROVEMENTS

  • [iOS] Smaller SDK size (for builds without Bitcode support)
  • [iOS] Zoom issue fix in the navigation mode
  • [Android and iOS] Fixed issue with TxgPackageInfoWrapper which caused multiple crashes
  • [Android and iOS] Fixed reversed lat/long when extended points are requested at route calculation
  • [Android and iOS] Fixed issue for the didUpdateRouteTraffic delegate method which reported incorrect values for newDurationOfCurrentRoute.

See full changelog for iOS SDK

See full changelog for Android SDK

3.0.2 10/11/2016

NEW FEATURES

  • Added support for raster images overlays. The overlays can be added either on top of the map (foreground) or under the map (background)

BUG FIXES & MINOR IMPROVEMENTS

  • [iOS] Fixed support for Bitcode
  • [iOS] Updated the Swift demo project to be fully compatible with Swift 3
  • [iOS] Modified demo project so that we showcase how to implement audio ducking
  • [iOS] Re-implemented the way handling hand gestures was done so that we are now inline with the Apple guidelines
  • [Android] Fixed issue where onSingleTap and onCompassSelected were both called when clicking on the compass
  • [Android] Fixed polyline width support (can take a value between 1 and 100)
  • [Android] Fixed SKRouteAdvice.getAdvicePosition so that now the correct values are returned for the latitude and longitude (before you received the latitude when asking for the longitude)
  • [Android] Added minZoomLevel support for SKMapCustomPOI
  • [Android] Added missing languages to the possible languages enumeration
  • [Android] Added missing enum values from the potential results of SKPackageManager.addOfflinePackage
  • [Android and iOS] Fixed issues with ETA when traffic was ON
  • [Android and iOS] Added support for the "hybrid" mode for OneLineSearch - the SDK will first try to retrieve result from the server (online) and if a server connection is not available it will search in the available offline packages (offline)

See full changelog for iOS SDK

See full changelog for Android SDK

3.0.1 26/09/2016

BUG FIXES & MINOR IMPROVEMENTS

  • [iOS] Added new APIs for RealReach: fitRealReachWithDuration, realReachCompletedWithBoundingBox (callback) and realReachBoundingBox
  • [iOS] Separated the reportGPSLocation in reportGPSLocation and reportDeviceHeading to have a better control over location/heading updates (and avoid issues where the positioner froze when you reported the same location with a different heading)
  • [Android] Added new API for RealReach: isCoordinateInsideRealReachPolygon
  • [Android] Updated the libpng version used by the C++ core to version 1.6.22. This should address the Google Play Store libpng vulnerability message: https://support.google.com/faqs/answer/7011127?hl=en
  • [Android] Fixed bug with animateToLocation (manifested expecially when the duration parameter was greater than 0 )
  • [Android] Fixed bug with isValidMapPackage returning false even if everything was OK with the map package

See full changelog for iOS SDK

See full changelog for Android SDK

3.0.0 05/07/2016

NEW FEATURES

  • OneLine search - now you have the possibility of searching for your desired address or point of interest within one single text box. You no longer need to split the address, street, city and country fields in separate fields but you can pass everything in one line "1 Dr Carlton B Goodlett Pl, San Francisco, California 94102"
  • We've integrated the OpenStreetMap based search within our OneLine search UI/UX. You also have the possibility of defining additional search providers and integrate them within the OneLine search UI/UX as the OneLine search UI/UX is offered as an open project in our SDKTools project.
  • Decoupled map updates - with the 3.0 update we've made it easier to update the map version without any code/SDK changes - notifications regarding new maps will be received automatically at SDK level and you will have control regarding how you pass the new maps to the end user

ENHANCEMENTS

  • Added text to speech support for new languages: Cantonese, Mandarin, Japanese, Korean, French Canadian and South American Spanish.
  • [Android] Added full Android Studio 2.0 project compatibility
  • [Android] Changed the map initialization procedure to ease the process and make it less error prone

Bug fixes & minor improvements

  • [iOS and Android] Modified the bounding box definition to allow top, left, bottom and right insets instead of just vertical and horizontal padding
  • [iOS and Android] Improved precision used when defining coordinates for polylines/polygons
  • [iOS and Android] Fixed turn by turn navigation bug that caused chained advices ("immediately..") being called too soon
  • [iOS and Android] Increased the maximum supported width for polylines (up from 10 to 50)
  • [Android] Modified the SDK API so that the point coordinates are now passed always in a [lat, long] order (previously some APIs were using the [lat, long] order, others were expecting a [long, lat] order)
  • [Android] Fixed bug causing the SKRouteAlternativeSettings being ignored when defining the route parameters
  • [Android] Added SKHeadingMode and removed SKMapFollowerMode - now the properties are aligned with their iOS counterparts
  • [Android] Added support for Mercator coordinates and conversion from Mercator to the [lat, long] format
  • [Android] Introduced the SKRouteRestrictions class as a container for all routing restrictions
  • [Android] Provided fix that caused annotations with custom views to sometimes render as black rectangles
  • [iOS] Updated Swift project to be compatible with Swift 2.0
  • [iOS] routingService:didUpdateSpeedWarningToStatus:withInstruction:insideCity: now has a return type allowing one to disable the speed warning prompts
  • [iOS] Improved behaviour and documentation for the addOfflineMapPackageNamed method to provide better control over how offline packages are installed
  • [iOS] Corrected the code used by AudioService for playing audio advices
  • [iOS] Added separate heading attribute to SKPositionerService allowing correcting the behaviour of reportGPSLocation

3.0 bug fixes (provided also as 2.5.1 hotfixes)

  • [iOS] Fixed bug that caused force closing the app to generate a crash log
  • [iOS] Fixed bug causing the app to crash when using SKViaPoint + startNavigation
  • [iOS] Fixed memory leak issue in 32-bit iPhones
  • [iOS] Fixed issue that caused the positioner to stop when the app was sent to background
  • [Android] Fixing "No such method, getLatitude" error
  • [Android] Fixed API level 23 compatibility issues
  • [Android] Fixed bug causing a SIGSEGV error when using calculateRouteWithPoints()

See full changelog for iOS SDK

See full changelog for Android SDK

2.5.1 13/10/2015

ENHANCEMENTS

  • added Features section in the demo project allowing developers to evaluate individual features & APIs and the reproduce & report issues easier
  • [iOS] Added iOS 9 support
  • Added support for new languages (audio files only right now): Cantonese, Mandarin, Japanese, Korean, French Canadian and South American Spanish.

Bug fixes & minor improvements

  • [iOS & Android] Exposed navigation instructions enum. In addition to the already existing visual advices, audio advices and text instructions we also expose information regarding the type of the instruction (as enum)
  • [iOS & Android] Exposed route summary when calculating a new route
  • [iOS] Exposed route mode in SKRouteInformation
  • [iOS] Added animation timer to zoomToRouteWithInsets
  • [iOS] Added outer border property to all overlays
  • [iOS] Added logic to smoothed the transition between 2D and 3D views during navigation
  • [iOS] Text to speech only - added the possibility to choose which street identifier to use during navigation (street ref or street name).
  • [iOS] Fixed bounding box recalculation between devices with different screen densities (until now the fixes was done app side)
  • [iOS] Fixed issue with didChangeCurrentAdvice not returning the complete information in the currentAdvice parameter
  • [Android] Added new methods to SKMapSettings - minimumZoomForTapping and setDrawingOrder
  • [Android] Fixed issue with setZoomLevelConfigurations not working correctly
  • [Android] Fixed issue that cause the map to render slowly on resume or on map view switch in scenarios where multiple map views were present
  • [Android] Fixed issue that caused the text instructions received during navigation to not be translated (when the advisor language was changed)
  • [Android] Fixed issue with that caused incorrect ID to be associated to annotations (causing the incorrect annotation to be updated & modified)

See full changelog for iOS SDK

See full changelog for Android SDK

2.5.0 27/05/2015

Map Data Update

  • updated OSM data to April 2015

ENHANCEMENTS

  • enhanced traffic API and implementation (order of traffic depending on severity, different colour schemes for route/not route traffic segments)
  • improved the RealReach™ API and examples
  • [Android] Improved the documentation & examples for handling scenarios where multiple map instances are involved
  • [Android] Improved the demo project UI and added new "Pedestrian Navigation UI" demo
  • [Android] Improved the documentation & example for handling an SDK update (replacing old resources & maps)
  • [iOS] Updated Swift project to be compatible with the latest available XCode
  • exposed API for changing the camera angle, distance and projection point position during 3D navigation

Bug fixes & minor improvements

  • [iOS & Android] Fixed behaviour with followerMode = rotatingMap (the map should rotate depending on the heading indicator)
  • [iOS & Android] Fixed issue that caused a delay in updating the current heading position when rotating the device
  • [iOS & Android] Fixed annotation anchoring issue after update annotation
  • [iOS & Android] Fixed issue where a null pointer exception was received when calculating a route and not setting the audio settings
  • [iOS & Android] Fixed issue with routes with viaPoints failing when using the pedestrian routing profile
  • [iOS & Android] Fixed issue causing a route create from a GPX track to lack the start and end segment
  • [iOS] Fixed issue with z-ordering for annotation (ID based) not working correctly after updateAnnotation
  • [iOS] Fixed issue with drawing multiple polylines on top of each other
  • [iOS] Fixed issue where the current location indicator and the heading indicator were displaced from each other on iPhone 6 Plus
  • [iOS] Fixed issue causing the lastRenderedFrame method to not work correctly
  • [iOS] Fixed issue causing visibleRegion setting to be overridden by followUserPosition = NO
  • [iOS] Fixed issue with alternate routes that caused either 1 or 3 routes to be created when asking for just 1 alternative route
  • [iOS] Fixed issue fixing a crash when route.shouldBeRendered = NO and asking for the calculated route information
  • [iOS] Fixed issue causing the first alternative route to be incorrect (time & distance) when creating a route using via points
  • [Android] Compass positioning issues fixed
  • [Android] Fixed issue where the map unexpectedly repositioned itself to user location
  • [Android] Added logic in the demo project to stop the demo from crashing in landscape mode while calculating a long route
  • [Android] Added better error logging for debugging OpenGL related issues
  • [Android] Fixed crash caused by calling SKRouteManager.getAdviceList in background thread
  • [Android] Fixed issue causing overlays to not be properly rendered when returning from background and preserveGLContext was false
  • [Android] Fixed issue that caused annotations using custom views (SKAnnotationView) to "move" when zooming in and out
  • [Android] Fixed issue that caused annotations using custom views (SKAnnotationView) to not be rendered correctly when using LinearLayouts in the view definition

See full changelog for iOS SDK

See full changelog for Android SDK

2.4.0 02/03/2015

Map Data Update

  • updated OSM data to December 2014

IMPORTANT

Discontinued support for Android version lower than 4.0 (API level 14). The latest SDK version to support Android version lower than 4.0 was 2.3.

ENHANCEMENTS

  • switched rendering engine to OpenGL ES2
  • added support for using via points (waypoints) when requesting a route
  • added support for dynamically adding/removing via points (waypoints) from an existing route
  • added enhancements to pedestrian navigation: trail mode (show recent path) and trail based map turning, improved routing profile and visualisation
  • added Text-To-Speech (TTS) support - see the demo apps and the getting started (iOS and Android) for examples on how to configure & use the TTS engine
  • exposed the web Routing & Directions API
  • [Android] added an SKTools utility library to our Android demo containing:
    • out-of-the box UI for turn by turn navigation - use the provided UI controls and bindings to quickly integrate navigation in your Android phone or tablet app
    • download manager - advanced offline map management with pause/resume/cancel/restart support
  • [Android] added Gradle support - you can include the Scout SDK directly in your build process via Gradle
  • enhanced elevation API with the capability of retrieving the elevation at any coordinate

Bug fixes & minor improvements

  • [iOS & Android] Fixed route generation and route rendering issues that appeared for certain GPX tracks
  • [iOS & Android] Added the possibility of creating a route from an array of GPS points
  • [iOS] Fixed issue with drawing multiple polylines on top of each other
  • [iOS] Fixed issue with the callout view not repositioning itself correctly when switching orientation
  • [iOS] Fixed positioning issue for annotation icons on retina (and higher resolution) screens
  • [iOS] Fixed bug where the lastRenderedFrame method was not correctly working
  • [iOS] Fixed minor memory leak issue cause the SKMapView dealloc to not be called when animating the map
  • [iOS] Added utility methods to facilitate operations with annotations - retrieving all the annotations on the map and comparing multiple annotations
  • [iOS] Fixed issue that prevented you to add a SKMapView directly from the Storyboard/XIB
  • [iOS] Aligned the update annotation methods so that now they work the same, regardless of how the annotation was created (using an image from file or an custom image view)
  • [iOS] Deprecated support for creating annotation icons using imagePath - all annotation icons should be created using the more robust SKAnnotationView
  • [iOS & Android] Added the possibility of specifying a minZoomLevel for callout views, similar to the annotations' minZoomLevel property
  • [Android] All notifications send by the SDK through listeners are now handled on the UIThread ?
  • [Android] Fixed issue that caused the map to incorrectly re-center after turning off and on the screen
  • [Android] Improved rendering of annotations so no more flickering is present when turning the screen off and on
  • [Android] Fixed issue causing polylines and polygons to be visible in all map instances
  • [Android] Added update annotation support
  • [Android] Fixed polyline rendering issues on Android 5.0 Lollipop
  • [Android] Fixed issue causing annotations added to the map to not be visible (in certain scenarios) unless a map re-render would be requested
  • [Android] Fixed inconsistency between the coordinate returned by SKMapSurfaceView::getMapCenter() and the center of the region returned by SKMapSurfaceView::getCurrentMapRegion()
  • [Android] Added documentation for the Android SDKTools library

Miscellaneous

  • Launched developer platform blog : platform updates and news, how-to's for our SDK, technical articles, innovative projects built with the SDK, OpenStreetMap initiatives

See full changelog for iOS SDK

See full changelog for Android SDK

2.3.0 30/10/2014

Map Data Update

  • updated OSM data to September 2014

Enhancements

  • [iOS] Added Swift support - now all the code snippets are provide in both Objective-C and Swift, the demo projects is provided in both Objective-C and Swift and we updated the getting started guide with steps to integrate the SDK via Swift
  • [iOS] Now the SDK can be also integrated as a module, besides the already available static framework

Bug fixes & minor improvements

  • [iOS] Updated the out-of-the-box navigation controls to support iPhone 6 & iPhone 6 Plus and performed minor changes to the colour palette used (for better contrast)
  • [iOS] Current location now works on iOS 8 - the NSLocationWhenInUseUsageDescription key must be added to the project's plist file in order to receive GPS locations.
  • [iOS] Fixed bug where it was not possible to get the route point information unless you used the requestExtendedRoutePointsInfo flag
  • [all platforms] Improved matching of routes generated from GPX tracks to the original GPX track
  • [Android] Fixed bug that impeded 2 annotations to have different icons (when the icon was set via a custom view)
  • [Android] Fixed OpenGL bug that, under certain circumstances, corrupted icons and texts
  • [Android] Fixed bug that required a forced mapView.requestRender(); after you added an annotation inside onSingleTab (or similar methods)
  • [Android] Fixed memory deallocation issue that appeared in long RealReach loops
  • [Android] Fixed issue on SKExtendedRoutePosition where getLongitude() returned the latitude and getLatitude() returned the longitude

See full changelog for iOS SDK

See full changelog for Android SDK

2.2.0 16/09/2014

Map Data Update

  • updated OSM data to August 2014

Enhancements

  • GPX tracks navigation - you can now pass a GPX track to the routing engine and a navigation ready route will be created (for best results try to have ~25 meters between 2 GPS points)
  • custom layouts for annotation icons - now you can use native UIViews and CustomViews to display complex layouts as an annotation's icon
  • animation support for annotations - add pin drop and pop out effects to annotations
  • animation support for current position icon - add pulse animation to the current position indicator
  • audio advices now also available in Polish
  • [iOS] added SKTools utility library containing:
    • out-of-the box UI for turn by turn navigation - use the provided UI controls and bindings to quickly integrate navigation in your app (styled for Day style and Night style)
    • download manager - add pause/resume/cancel and restart logic to map downloads

Bug fixes & minor improvements

  • [iOS] Added support for dynamically generated views as an annotation's icon
  • [iOS] Added callback for current position icon selected/tapped
  • [iOS] Fixed fitBounds:withPadding method to correctly zoom the map to fit a bounding box
  • [iOS] Show/hide compass now correctly calls for a redraw of the map
  • [iOS] Fixed annotation offset differences between retina/non retina screens
  • [iOS] SKPolyline width is not correctly adjusted on retina screens
  • [iOS] Added cocoapods support
  • [iOS] Added extensive example for how to set the image for an annotation in the demo project
  • [Android] Fixed issue with annotation icon becoming white after the app was sent to the background
  • [Android] Made centerMapOnPosition and centerMapOnPositionSmooth more robust (no longer crashes if used incorrectly)
  • [Android] Callout view improvements: the callout's view position when panning & zooming is handled by the SDK, added fallback layout for callout view
  • [Android] Improved tapping support for annotations
  • [Android] refactored SKPosition constructor from (latitude, longitude) to (longitude, latitude)
  • [Android] Added support for updating an offline map package to a newer version
  • [Android] Added extensive example for how to set the image for an annotation in the demo project

See full changelog for iOS SDK

See full changelog for Android SDK

2.1.0 11/07/2014

Map Data Update

  • updated OSM data to June 2014

Annotation handling improvements

  • improved annotation touch events (increased responsiveness)
  • added update annotation image support - you can now change the image for an annotation without having to recreate the annotation
  • added annotation Z ordering support (bring to front)
  • added support for setting the drawing order for overlapping annotations and overlays

Bug fixes & minor improvements

  • [iOS] SkPolyline now correctly draws dotted lines
  • [iOS] caching of SkPolylines now works as expected
  • [iOS] onDestinationReached correctly called in all instances
  • [iOS] distanceToDestination correctly updates along a route
  • [iOS] GPX tracks and SkPolylines rendering improved (smooth transitions between segments)
  • [iOS] Fixed support for text based advice instructions during navigation
  • [iOS] After a push/pop event on a ViewController annotation selection correctly works
  • [iOS] routeCoordinatesForRouteWithId correctly returns the route coordinates
  • [iOS] added support for Maps.json (same content as Maps.xml)
  • [iOS] added heatmap example in the demo project
  • [Android] Fixed support for text based advice instructions during navigation
  • [Android] onAnnotationSelected and onCustomPOISelected now correctly called in all instances
  • [Android] GPX tracks and SkPolylines rendering improved (smooth transitions between segments)
  • [Android] added heatmap example in the demo project
  • [Android] added audio advice support in the demo project (now the audio advices are played automatically)

See full changelog for iOS SDK

See full changelog for Android SDK