Start with routing

Hi all,

I just made my map finally routeable.
But I still missing some complex understanding how routable should be done.

  1. using routable types
  2. using road_class, road_speed, access

I looks like need some know-how :wink: the only what I found is this:
mkgmap.jar --help=options doen’t show anything about routing
some basic info is in mkgmap pdf documentation. :frowning:

Can someone point me to some good complex info about routing pls?



Does it mean that I can use these types (< 0x010000) for routing?
Or is there some limitation?



The only routable line types are 0x01-0x09, 0x0a-0x0c, 0x16, 0x1a and 0x1b
Besides the mkgmap pdf manual and the mkgmap mailing list archives you can look in the cgpsmapper manual

The number of routable types is pretty limiting and I am sure that I am not first one who would like to have more routable types. :wink:
I am trying to use routable types as in cgpsmapper manual:
0x01 motorway
0x02 trunk
0x03 primary road
0x04 secondary road
0x05 tertiary
0x06 unclassified, motorway-trunk-primary links
0x07 service road, street road
0x08 footway
0x09 cycleway
0x0a path
0x0b hiking_route
0x0c cycle_route
0x16 track
0x1a steps
0x1b ferry

I would like to have working routing for cars, biking, hiking and backcountry skiing.
Everything is quite working like this, but I missing one routeable type for skiing.

Any suggestion?


You can use those routable line types for multiple activities by making them transparent, using continue and put another non routable on top that render the activity like walking, cycling or skying.
Note that 0x0c is reserved for junction=roundabout in the routing instruction.

Types 0x08, 0x09 are ramps, type 0x0A is unpaved road, types 0x1A, 0x1B are ferries, 0x0C is roundabout. They are treated specially by GPS, for example can cause specific announcement while navigating (ramps, roundabout) or can be excluded from routing by GPS settings (unpaved roads, ferries).

I think you can use for routing types 0x0D - 0x13 too but I haven’t tested them all.

Ok I got the idea.
Can be used just one transparent routable type for all activities and just distinguish it purpose by “access” tags?
Or rather use different transparent routable type for each activity?


Aha … So in other words these types should be really used for what they are meant for.
Is it complete list of routable types which having “special purpose”?

This would be great … I miss few (3-4) routable types which I can use freely … I meant they don’t have any “special purpose”.


Better use line types as defined in cgpsmapper manual. I think types 0x01 - 0x03 can have special meaning, they could be preferred when calculating fastest route and can be influenced by “avoid highways” settings (probably 0x01 only).

Some of line types can be invisible by default, you would have to add graphics definition in typ file to see them in device.

Garmin maps are designed for car routing, any other routing type, like for example bicycle routing, is difficult to obtain. If you’d like to create map for bicycle or skiing, than maybe you should use car mode using highway types for dedicated paths.


My Garmin 78s has many options for navigation: car, bicikle, montain bike, walking, hiking, skiing.


Hmmm …For what I should use these types?


These are connections between roads on interchange.

Yep, you can use 0x0d, 0x0e, 0x0f, 0x10, 0x11, 0x12 and 0x13 for routing too.
0x14 is used for railways, but it is only rendered at very high zoom resolutions.
It is very odd that official Garmin topomaps hardly shows any railways, unless you zoom in very close. :confused:

Aha …:wink: got it. Thank you

Excellent! Why this is not documented? :frowning:



Another question is about routing priority.
If there are two options how to get from A to B on what depend decision?
The shorter is taken? Or quicker?
Is there any way how I can influence the choice by my personal preferencies?
e.g. I prefer bike on low-traffic roads or tracks, but tertiary road is acceptable if no other choice.



Garmin looks at the road_speed and road_class parameters, the number of turns it has to make (less is better) and maybe sharp bends in the road?
You can play with road_class and speed. But it also depends on the activity, with the new activity routing it looks that cycling activities seem to prefer lower road classes and driving prefers higher road classes. In my cycling map I use higher road classes for cycleways and cycling routes, so the user with a modern garmin has to use the automobile profile instead of the cycling profiles. I also recommend this because there is also a “feature” or bug that blocks routing on every way tagged with access=no if carpool lanes avoidance is activated, which is default in the bicycle profiles. So cycleways with access=no & bicycle=yes will not route in the bicycle profile, unless you switch carpool avoidance off.

To me it looks like Garmin should handle routing in clever way and I will not need do any tricky things.
I just finished big changes to my TYP file and lines file to improve using of routable types.
I build my map and make some test routing … everything works surprisingly well. :slight_smile:

There is only one disapointment … I thought that my garmin also do ski routing, but it doesn’t.
There are these options for routing:
direct routing
automobile driving
motorcycle driving
tour cycling
mountain biking
pedestrian walking
atv/off road driving

Is there any chance to make ski routing? For e.g. via “motocycle routing” option … by making ski routes “super highly attractive” for motorcycle?

best regards


I’m glad it works for you but it surprises me you wont need any tricks.
You can use skirouting by using tricks like toll road avoidance, only if you dont use this feature of course.
First reset all roads by deleting all toll tags. Then apply mkgmap:toll=yes on all highway=* except the ski routes.
In your motorcycle profile activate toll road avoidance to use the ski pistes :wink: and you are done.
I use this trick to cycle on bike routes. If you dont want to abuse toll roads, you can try the mkgmap:ferry option or maybe treat real toll roads as they were ferry routes to avoid them with the ferry avoidance option.

I just tried find some routes in city and for car routing has been done on roads shortest possible way,
for bike it was done on bike_route and for hike it leaded shoter way on footways.
So for beginning I am happy … I will find some issues latter for sure :wink:

This sounds good to me, but I can’t find “toll road avoidance” on my navigation :frowning: Should be this option on all garmin models?

Hmmm … again I can’t find “ferry avoidance” option.