This release on 26th April 2019 is based on mainline revision 8175.

Previous release 5.6 on 11th February 2019 was based on mainline revision 7972.

General

Turn instructions now work properly for contraction hierarchy routing.
The navigation states have been changed; there are different states and their meanings are different.

The Maps App

The style sheet editor is now a non-modal dialog.

The Framework API

Added functions to display turn instructions during navigation, including a turn diagram.
Made the current view state serialisable so that it can be saved and reloaded by apps.

C++ API

Deprecated synonyms for enum class constants have been removed.
TPerspectiveParam now stores its terrain position in degrees for convenient serialisation.
TViewState now stores its terrain position in degrees for convenient serialisation.
Removed CFramework::Name(), which was redundant.
Added functions to enable and disable turn instruction display, and to override automatic turn instructions.
AddNavigatorObserver now takes a weak pointer, not a raw pointer.
Added setters and getters for the navigation parameters.
Removed the deprecated GetNearestRoad function; use FindNearestRoad.

.NET API

The NavigationState enum class has changed in both its state constants and their meanings.
Added the PerspectiveParam class to allow setting and getting of perspective parameters.
Added the ViewState class to allow setting and getting of the view state.
Added the NavigatorParam class to allow setting and getting of the navigator parameters.
Added SetNavigatorParam and GetNavigatorParam to set and get the navigator parameters.
Added SetTurnInstructions, EnableTurnInstructions, SetTurnInstructionText and TurnInstructionText to control the display of turn instructions.
Added the CreateWritableMap, MapHandle, MapIsWritable, and EnableAllMaps functions to control the current maps.
Added a LoadFont overload which takes data in memory.
Added a SetPerspective overload which takes a PerspectiveParam object, and GetPerspectiveParam to return the current perspective parameters.
Added RotateAndZoom to rotate and zoom simultaneously.
Added a SetView overload with a ViewState parameter to set the view to a view state, and GetViewState to get the current view state.
Removed the deprecated GetNearestRoad function; use FindNearestRoad.
Added AddTurnLine to the Legend class to allow turn instructions to be added to a legend notice.

Android API

The NavigationState enum class has changed in both its state constants and their meanings.
Added the PerspectiveParam class to allow setting and getting of perspective parameters.
Added the ViewState class to allow setting and getting of the view state.
Added the NavigatorParam class to allow setting and getting of the navigator parameters.
Simplified the names of the RoadType constants and added useful new ones matching those in the C++ API.
Added setTurnInstructions, enableTurnInstructions, setTurnInstructionText and turnInstructionText to control the display of turn instructions.
Added resolutionDpi to get the display resolution.
Added a setPerspective overload which takes a PerspectiveParam object, and getPerspectiveParam to return the current perspective parameters.
Added a setView overload with a ViewState parameter to set the view to a view state, and getViewState to get the current view state.
Added setNavigatorParam and getNavigatorParam to set and get the navigator parameters.
Removed the unneeded positionKnown function.
Added onTap, onDoubleTap and onLongPress as overridable functions to MapView to allow apps to respond to tap, double tap and long press gestures more easily.

iOS API

The CartoTypeNavigationState enum struct has changed in both its state constants and their meanings.
Added the CartoTypePerspectiveParam class to allow setting and getting of perspective parameters.
Added the CartoTypeViewState class to allow setting and getting of the view state.
Added the CartoTypeNavigatorParam class to allow setting and getting of the navigator parameters.
Added setTurnInstructions, enableTurnInstructions, setTurnInstructionText and turnInstructionText to control the display of turn instructions.
Added a setPerspective overload which takes a CartoTypePerspectiveParam object, and getPerspectiveParam to return the current perspective parameters.
Added a setView overload with a CartoTypeViewState parameter to set the view to a view state, and getViewState to get the current view state.
Removed the unneeded navigationPositionKnown function.
Added setNavigatorParam and getNavigatorParam to set and get the navigator parameters.
Removed the deprecated getNearestRoad function; use findNearestRoad.
CartoTypeViewController now handles a transition to a new display size, as caused by rotating a phone from portrait to landscape, correctly.

IMPORTANT CHANGES MADE DURING THE LIFETIME OF RELEASE 5.6

fixed case 2451: slow text search when map split into contours and main data
the route table start position is now zero when it was not written because there were no routable objects; that causes it to be ignored, as desired
fixed very large road lengths in turn-expanded router caused by part of road seeming longer than the whole road when measured in a different way, causing a negative length for the second part which wrapped round to large positive because it was unsigned
fixed case 2452: turn-expanded router cannot calculate a route ending on a restricted road
initial fix for case 2219: hill shading is offset; not perfect but an improvement
added support for fling gestures (pan with momentum) to the Android and iOS UI code, and changed the demo programs to use the new system
fixed case 2454: loading a second map enables notices erroneously
added support for turn instruction display
fixed case 2456: casting NaN to integer causes floating point exception on Embarcadero
fixed case 2458: iOS map renderer doesn't handle change from portrait to landscape
added functions to set and get the view state and perspective parameters to all APIs
added functions to serialise the view state and perspective parameters to all APIs
added setters and getters for navigation parameters to all APIs
fixed assertion in CFastPath when a contour had no points
fixed incorrect roundabout exit numbers
fixed case 2468: empty legend causes crash
makemap didn't compile using GCC 8.2.1 because of an incorrect template argument
determination of whether a road was a link was wrong in CRoute::AppendSegment
fixed case 2474: turn instructions are wrong when using CH routing
improved turn instructions for the turn-expanded router
ctm1_info can now suppress layer information and apply an extent
some roofs were not displayed properly (e.g., main dome of St Pauls) because of conversion from double to float causing unexpected comparison result
ctm1_info ran out of memory on map of Britain and Ireland so added 64-bit configuration
fixed case 2477: some building walls missing in 3D mode
added overridable gesture handlers to MapView on Android
fixed case 2483: black background when world map is zoomed out
simplified road type names in the Android SDK and added missing flags and types
fixed case 2482: flickering on Android when perspective angle is 20 degrees
fixed case 2487: some island names are duplicated and many point islands were not converted to polygons
shifts were not applied to the set_int instruction in the import rules language
implemented case 2488: use Zlevels.shp to offset roads by their level when importing Navstreets data
the framework observer is now a weak pointer to avoid dereferencing a freed pointer; fixes case 2489: iOS framework crashes when deallocating the framework