logo separator

More flexibility in style files - style changes required!


Since r2906 there are some important changes in the style processing which gives the style developer more control about converting OSM elements into the Garmin map elements. As a benefit the routing network is up to 25% smaller which results in faster route calculation and slightly smaller img files.

Changes in the style system:

  • Styles can now have a <finalize> block. This block is executed for each element if an element style definition matches. The finalize block must contain actions only. This is sometimes useful for general rules and to assign the numerous mkgmap:* tags.
  • The four labels to pois/lines/roads/polygons are no longer assigned automatically. They must be assigned using the name and addlabel function. This also means that ref tags are no longer used as labels automatically.
  • Access restrictions of roads are now defined by setting special mkgmap:* access tags (mkgmap:car, mkgmap:foot, mkgmap:bicycle, mkgmap:truck, mkgmap:bus, mkgmap:taxi, mkgmap:emergency, mkgmap:delivery). Roads are blocked for a specific vehicle type if the mkgmap:<type> is set to the value no. The new addaccess and setaccess actions help to assign all values at once.
     highway=motorway { set mkgmap:foot=no }
     This rule blocks access of pedestrians to motorways.
  • mkgmap:carpool does no longer automatically set all access restrictions. In the trunk mkgmap:carpool=yes lead to set all access restrictions to no except emergency, bus and carpool. It is not fully clear if the bit toggled by mkgmap really controls if a road has a carpool lane or not. So use it with caution.
  • The road speed is no longer automatically calculated using the maxspeed tag. New style functions maxspeedkmh() and maxspeedmph() allow to perform the same by setting the mkgmap:road-speed-class tag. Due to this change the --ignore-maxspeeds option is superfluous and has been removed.

The changes listed above require a change of all style files. But there are three new include files (inc/compat_points, inc/compat_lines, inc/compat_polygons) which ensure compatibility to pre-r2906 releases. They need to be added to the new finalize section.

Example lines file:

 boundary=political [0x1c resolution 19]
 include 'inc/water_lines';
 include 'inc/contour_lines';
 # add the following lines to your lines file
 include 'inc/compat_lines'; 

Please refer also to the style manual.

Posted by wanmil on 22 Dec 2013

Latest commits

  • mkgmap-r4555 juncArea.path by Ticker Berkin.
    22 jun 2020
  • mkgmap-r4554 Fix for text rendering of documentation.
    22 jun 2020
  • mkgmap-r4553 doc: improve formatting (miscDoc_v3.patch by Ticker Berkin).
    20 jun 2020
  • mkgmap-r4552 miscDoc_v2.patch by Ticker Berkin:.
    20 jun 2020
  • mkgmap-r4551 Report type(node,way,relation) of original element in "generated from" messages (slightly modified generated-from.patch).
    19 jun 2020
See more...