Release date: 12th February 2019

Previous release: 5.4, 23rd October 2018


Isochrones (travel ranges) now work for the turn-expanded router

Turn-expanded router data can now be stored in serialized form, for fast loading, in CTM1 (map) files

Address data can be added to map objects at data preparation time for use by a new function, GetAddressFast, which uses data only from the map object for which an address is required


Turn-expanded routing data can now be created in serialized form as part of a CTM1 (map) file using /route=t; it is loaded automatically by the framework if present

Different extents can now be applied to different input files by appending the extent, after a comma, to the filename

A new option, /setaddresslayers= adds address data for use by GetAddressFast

Framework API

Added ExpiryDate and AppBuildDate

Added a SetView function which takes a geometry object

Added SetViewToWholeMap, which replaces SetViewToFillMap where present

Added SetViewToRoute

Added InsertPushPin

Added GetAddressFast, which uses information added by the /setaddresslayers makemap option

FindNearestRoad replaces GetNearestTRoad, which is now deprecated, and optionally displays the found position


Standard integer types (uint8_t, int32_t, etc.) are used in the public API instead of the equivalent CartoType-specific types (CartoType::uint8, CartoType::int32, etc.), which are now obsolete and used internally only.

Abolished CBitmapGraphicsContext; CGraphicsContext is now a bitmap GC class


Changes made during the lifetime of the previous release, 5.4

fixed memory leak caused by failure to delete CNotice objects
fixed case 2365: triangle on boxed label causes hang; parser didn't handle syntactically incorrect labelFormat attribute properly
one overload of readMap in Android was public, not private as it should have been
fixed case 2366: windows demo turns legend on when the style sheet is reloaded
fixed case 2280: when two graphics accelerated windows are open in the Windows demo, one or both redraw slowly
fixed case 1944: (regression) forbidden areas didn't work properly with pedestrian routes
reduced the default vector tile cache size and made it adapt to the number of tiles needed to cover the display; saves about 200Mb of RAM per map on Windows
repeated SVG symbols were drawn in the wrong place in graphics-accelerated mode
fixed case 2369: reloading a style sheet turns off the GL style sheet variable
forbidden areas no longer change the road type to 'unknown', which might prevent some route profiles from working; and overlapping speed restrictions now cause the greater restriction to be used
fixed case 2372: repeated symbols using SVG are sometimes drawn transparently when graphics acceleration is used
fixed cases 2373 and 2376: Android version crashed when creating a RouteProfile or FindParam object
fixed case 2374: access violation with multiple maps on Windows
fixed case 2375: FindAddress suppresses the building number, and returned items are duplicated
fixed case 2385: MapRenderer.Valid() returns false on .NET even if the map renderer is correctly constructed
navigation, rotation and zoom now work properly in the Swift demo
the turn-expanded router now supports forbidden areas
fixed case 2401: findStreetAddresses hangs; simplified complicated clip paths and restricted the maximum internal number of map objects to be found
new feature: changes to the map view are smoothly animated during navigation; animation can also be turned on at other times
fixed case 2406: setting the map view to a map object didn;t work properly when the map was rotated, or in perspective mode
added dependencies to the EGL libraries to the windows demo projects
new feature: changes to the current location, when displayed using the route-vector layer, are smoothly animated
simplified the way the standard style sheet displays the route and vehicle location
headings were not matched properly when finding the nearest road
fixed case 2430: CProj4Projection is not thread safe
made it illegal to create a TBitmap from a CBitmap, to avoid errors caused by using a TBitmap instead of a CBitmap to receive return values from functions returning CBitmap
fixed case 2435: SetLegend causes a crash in .NET
fixed case 2436: crash in iOS when zooming out a lot during navigation
fixed case 2439: and don't always work properly with graphics acceleration
setViewObjects now works correctly in Java