logo separator

[mkgmap-dev] Resurrect adjust-turn-headings

From Ticker Berkin rwb-mkgmap at jagit.co.uk on Wed Sep 30 16:15:40 BST 2020


I've been experimenting with turn angles, compactDirs (4-bit) or not (8
-bit) format, sharp-angle delay and routing pop-ups and have some

1/ BaseCamp, MapSource, eTrex 30x (newish) and eTrex HCx (old) can give
different pop-ups for the same map and route. BaseCamp results are
similar to the 30x, MapSource to the HCx. The differences I spotted
were on Motorways, where BaseCamp/30x give extra pop-ups to "keep
right" or "keep left" where the road splits, ie outside lane(s) will
become a different road.

2/ The compactDirs format uses 8 bits per pair of distinct arcs giving
16 possible initial headings spanning 22.5 degrees each. The full
format uses 8 bits per distinct arc giving 256 headings of ~1.4 degrees

3/ Using compactDirs doesn't reduce the size of the img file as the
full size needs to be reserved.

4/ Paring the arcs so the same compactDirs entry is used for both
directions of the same road makes no difference as to the decision the
device might make about generating a turn pop-up while remaining on the
same road because another road is more "straight-on"

4/ When using compactDirs, the Garmin logic appears to consider the
opposite road (using the 4-bit granularity) to be the continuation and
other roads generate a turn pop-up. I'm not sure if "opposite" has to
be exactly opposite or just the closest to opposite.

5/ Because of this granularity, a road that changes angle by a fraction
of a degree could end up not in opposing sectors, and another road that
is up to 22.5 degrees from the first road could be in an opposite
sector to part of the first road!

6/ The current algorithm checks if all the arcs from a routing node use
distinct 4-bit headings, and, if so, uses the compactDirs format for
that node, otherwise it uses the 8-bit format. The combination of 5/
and 6/ can lead to turn pop-ups on what seems like a straight road.

7/ Using the 8-bit format, the Garmin logic to decide on turn pop-ups
seems more intelligent. The examples I've tested don't give a pop-up
when driving on a road that bends and there is a path almost straight

8/ Sharpish turn-angles impose a routing penalty. This has behaviour
that is difficult to pin down, but I'll try and summarise in another


More information about the mkgmap-dev mailing list