logo separator

[mkgmap-dev] [PATCH v3] heed the through_route relation when adjusting turn headings

From Mark Burton markb at ordern.com on Sun Feb 14 15:04:58 GMT 2010

v3 - bug fixes:

 now ignores through_route relations if the junction is outside of the
 tile's bounding box

 should no longer think that ways that have been split do not start
 or end at the junction.

--------------------

v2 - no longer requires the node to have role "junction"

This patch also includes two other changes to the heading adjustment
code:

    When matching arcs, as a last resort, match road class and speed.
    
    If at a node, an outgoing arc cannot be matched to an incoming arc
    by possiblySameRoad(), try to find a single outgoing arc that has
    the same road class and speed as the incoming arc and use that.

and:

    When adjusting turn headings apply all relevant adjustments.
    
    Previously, if a heading needed adjusting because the delta from the
    outgoing arc was too small, it did not then consider whether the
    delta from the incoming arc was too small also. Now, it considers
    both cases and adjusts the heading as appropriate.

So please test even if you are not adding any through_route relations
and if you see any notable changes (good or bad) please say.

--------------------

This new relation (type through_route) specifies which 2 ways are the
"through route" at a junction. The relation requires 2 ways (no role
required) and a node with role = junction. It should only be used at
those junctions where the through route cannot be reliably inferred
from the ways' names and/or refs.

Here's an example from my local town:

     |   1
     |  /
     | /
     |/
     A
     |
     |
     |
     |
     B
    /|
   / |
  /  |
 2   |

The vertical road is the "through route", i.e. you can drive from one
end to the other without crossing any white lines. But, from point 1 to
point 2 is a B road so ways 1-A, A-B, and B-2 all have some ref,
say, B1234.

Without the through_route relation, mkgmap assumes (erroneously)
that the through route is 1-2 because all of the ways in that route
have the ref B1234.

By adding 2 through_route relations (one at A and the other at B),
mkgmap is informed of the real through route and will take that into
account when adjusting the turn headings. The end result is that the
quality of the routing directions is improved (we hope).

In this example, we need to have 2 relations because the B road
joins/leaves the through route at two places. 

So if you know of any junctions that would benefit from this relation,
please add it to the map data and try this patch to see if it improves
the routing instructions.

Mark

-------------- next part --------------
A non-text attachment was scrubbed...
Name: mb-through-route-rev3.patch
Type: text/x-patch
Size: 12738 bytes
Desc: not available
Url : http://lists.mkgmap.org.uk/pipermail/mkgmap-dev/attachments/20100214/abee0df2/attachment.bin 


More information about the mkgmap-dev mailing list