Release date: 26th June 2015

Previous release: 3.3, 13th May 2015

Major changes since the previous release

Turn costs are now used in routing

Route profiles now have parameters giving the expected time taken for an ordinary turns, cross-traffic turns, and traffic lights.

  • The ordinary turn time is the estimated time in seconds taken for any turn at a junction that is not a slight turn or simply going straight ahead, and is not a cross-traffic turn.
  • The cross-traffic turn time is the estimated time in seconds taken for a turn across the traffic: that is, a left turn in drive-on-right countries, or a right turn in drive-on-left countries. The time is used when turning from the right of way to a lower-rank road. It is doubled when turning from a lower-rank road on to the right of way. The cross-traffic turn time can be used only when the driving side is known: see below.
  • The traffic-light time is the estimated delay in seconds caused by traffic lights.

These parameters should be used sparingly. Over-large estimated delay times will cause the router to use convoluted routes especially to avoid turns.

Setting the driving side

You can set the driving side (also known as the rule of the road) using the new makemap command-line option /driveonleft=yes or /driveonleft=no. If you set the driving side, cross-traffic turn times in routing profiles are enabled. You can also set the driving side to drive-on-right implictly by using CTM1 format version 6: /v=6.

Motorway junction numbers

The numbers and names of motorway junctions are now imported, shown on maps, and used in driving instructions.

Speed improvements

Both map rendering and data preparation using makemap are now faster; this has been achieved by removing obsolete code and more efficient memory allocation.

Finding points on a route

There are three new functions to find points on a route. They all return detailed information about the point itself, the route segment on which it lies, the distance along the route, and the time along the route. They are:

  • GetNearestSegment: find the nearest point on the route, and its route segment, to any point on the map. This function also provides the distance to point on the route.
  • GetPointAtDistance: find the point at a certain distance measured along the route.
  • GetPointAtTime: find the point at a certain estimated time along the route.