This release was made on 15th September 2020 and is based on mainline revision 9241.

The previous release, 6.0, was made on 6th July 2020 and was based on mainline revision 9085.


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

Improvements to the TECH router. The TECH (turn-expanded contraction hierarchy) router, which you can use via the makemap command line option '/route=tech', now incurs much lower peak RAM use in makemap when the data is being created.

General router improvements. Turn costs and instructions and junction information are now consistent over all router types apart from the CH router, which does not support turn costs. A-star routing is now faster, and is as fast for vehicle types containing maximum weights or other dimensions as for those without. However, as explained below, A-star routing is now deprecated: use /route=t instead of /route=a or /route=yes, which is the same thing.

Deprecation of non-turn-expanded routers. The two recommended router types are now /route=t: turn-expanded A-star, supporting flexible routing profiles at runtime; and /route=tech: turn-expanded contraction hierarchy, for lower RAM use and very fast routing at the cost of larger CTM1 files and a fixed set of routing profiles decided at map creation time. The other types of router data (/route=a and /route=ch) are still however supported and can be created by makemap and used by the CartoType library. The reasons for their deprecation are that neither of them can create correct routes in certain circumstances involving complex junctions, and that the CH router does not support turn costs. This deprecation policy means that there will be no further development effort for the deprecated routing systems.

New containment and intersection functions for map objects. There are now functions to determine the way a path, represented by a Geometry object, intersects with a map object or list of map objects. Intersection and  containment are distinguished, and in the case of non-intersection the distance and closest points are found.

Maps can now straddle the antimeridian. Countries like Russia, the USA and Fiji have territories on both sides of the antimeridian at 180 degrees West or East. To create maps straddling the antimeridian use longitude values greater than 180 for the eastern edge, and use an appropriate projection (e.g., Lambert Azimuthal Equidistant for Fiji: /project=laea, or Albers Equal Area for Russia; see

Most out-of-memory exceptions are now trapped. The operations of routing, loading a map, and finding large numbers of map objects are now performed inside try...catch constructs so that out-of-memory conditions are reported as error codes rather than causing program termination. This is principally relevant to mobile platforms (iOS and Android) but happens on all platforms.

Selected other changes and fixes

fixed case 2694: TECH router doesn't handle changes to the traffic light time correctly; logic for deciding whether a turn was cross-traffic was wrong
implemented case 2664: makemap should write the CartoType version used to build the CTM1 file
fixed case 2704: One way restriction not being followed
implemented case 2688: makemap should use information in GeoTIFF files in preference to world files
fixed case 3717: TileBitmap doesn't support night mode
fixed case 3718: wrong route time on tech map
fixed case 3719: wrong route calculated with tech maps; only the first positive turn restriction was handled by FixRestrictions, so second and subsequent positive restrictions were ignored
fixed case 3715: high RAM use when zoomed out in a very large map
fixed case 3722: extra turns in cycling route
fixed flickering when drawing labels using latest Qt 5.15; supplement to case 2626: display flickers in web assembly
fixed case 3725: route geometry is incomplete
fixed case 3735: a-star router adds five minute delay at end of route
prevented a long sequence of deprecated roads (speed plus bonus = 0) from being used
fixed case 3738: memory map database ignores condition when deleting entire range of object IDs
made admin areas relevant when searching for localities and sub-localities in FindAddress: fixed case 3733: Diemelstadt not found; Diemelstadt is a municipality, which becomes TGeoCodeType::AdminArea8
fixed case 3729: FindAddress doesn't merge streets properly
fixed case 3740: FindAddress sets a very large margin around cities
the windows demo and the maps app now create a non-overlapping envelope for found linear objects
the maps app didn't enable 'find next' for address finding
fixed case 3741: FindAddress doesn't find roads by reference
fixed case 3732: CreateRoute crashes with coordinate outside the map
fixed case 3730: FindAddress can't find Frankfurt (Oder); space is now used as a separator when matching tokens in a name
fixed case 1963: make nearby object warnings work even when not navigating
implemented case 3708: add option to maps app to use shift-left-click to simulate a location fix
maps app now shows the current navigation state when simulating a route
fixed case 2667: loading a custom route profile in maps app when custom routing is selected doesn't change the route
fixed case 3742: some graticule lines are not displayed when graphics acceleration is on
fixed case 3744: LoadIcon doesn't work when TileBitmap is used