This release was made on 6th July 2020 and is based on mainline revision 9085. It includes support for Web Assembly, faster and lower-memory map creation, and faster routing.

The previous release, 5.12, was made on 25th March 2020 and is based on mainline revision 8838.


Note: these changes were made between release 5.12 and release 6.0. Some of them were merged into release 5.12.

Web assembly support: CartoType can now run in WebAssembly (WASM). The WASM version of the library is built using Emscripten and runs on desktop versions of the Chrome browser.

Location matching: The current location match parameters are now part of the framework state, and are no longer supplied as parameters to some functions. There are new API functions to set and get the current location match parameters. Location matching is used when finding the nearest appropriate road when creating a route.

Abolition of fixed-point numbers: 32-bit fixed-point numbers (the classed TFixed, TFixedSmall, etc.) were formerly used in some API functions, and extensively inside CartoType. They have now been removed everywhere and replaced with floating-point numbers.

Lower memory use when creating maps: the makemap tool, used to create maps, now typically uses less than half as much memory (peak RAM use) when running.

Lower memory use when running CartoType: new contour classes that don't unnecessarily store off-curve points when none are needed give some memory and speed improvements to the CartoType library.

Much faster contraction hierarchy routing in large maps: the TECH (turn-expanded contraction hierarchy) router, which you can use via the makemap command line option '/route=tech', now uses the open source RoutingKit library to create the contraction hierarchy, resulting in much faster routing (an improvement of over 50-fold in some large maps) at the cost of larger map files. For '/route=tech', makemap run time is also much lower than with '/route=ch'. The advantage of contraction-hierarchy routing in CartoType is that it uses much less RAM than the other routing methods.

Major bug fixes

fixed memory leak in CProjection caused by proj4's failure to deallocate its global list of grids
Greek transliteration did not handle MP, NT, GG, GK, GX, GKH digraphs
fixed case 2645: shortest route doesn't work
fixed case 2647: no new turn information provided when rerouting
fixed failure to recreate and redraw turn instructions when a route update happens with no change to scale or map position
the ReRouteDone state was never set in CFramework; now it is set for one call to Navigate after a successful rerouting
fixed case 2652: 3D buildings are drawn wrongly if graphics acceleration is turned off
caching logic was wrong in the CH and TECH routers, causing inefficiency for large amounts of data
fixed case 2656: incorrect navigation state when road is forbidden by vehicle dimensions
fixed case 2654: illegal sharp turn in TECH router
fixed case 2679: bad route involving sharp turn taking 30 minutes
fixed case 2681: car route uses track
fixed case 2684: findNearestRoad doesn't work on android
fixed case 2693: style sheet editor cannot be opened a second time in the maps app