[OSM-talk] Clarifying and representing road markings at junctions

Matt Williams lists at milliams.com
Tue Sep 29 20:59:10 BST 2009


I've been noticing recently a problem we're going to/already have in
our data when it comes to routing directions particularly. It concerns
how to define continuations of roads at junctions and/or the road
markings that delineate that. This problem manifests itself in many
ways but for a first example, look at the attached image (road.png).

On the left you will see the physical plan of a road junction near
where I live. The way that it would be represented in the OSM data
model is shown on the right. In this case, it would be sensible to
make a way out of the segments 'a' and 'b' (yeah, I know we don't have
segments any more, it's just an explanation tool), call it, e.g.
'Curve Road' and make a second way out of segment 'c' and call it
'Small Road'. At this stage, the date representation is sound and
routing application would have no problem knowing how to parse it.
However, there are two (increasingly common) ways in which this model
will be forced to be broken:

1. Naming doesn't match (e.g. [1])
This is the case near me. There used to be a road going along segment
'a' and 'c' called "Frogmore Lane". Then when segment 'b' was built
(and called "Stonechat Road") they changed the road markings so that
as you drive North from point 'A' they would guide you along 'b'
towards 'B' (as in the left-hand picture). That is, you would be
changed from being on Frogmore Lane to Stonechat Road without having
'turned'. Frogmore Lane continues along segment 'c'.
In this case, I have to make 'a', 'b' and 'c' separate ways (well, 'a'
and 'c' could be combined but that doesn't help)

2. Split for relations or some other property change
Imagine a bus route goes along 'a' and 'b' while a cycle route goes
along 'a' and 'c'. In order to place the correct ways in each
relation, the three segments must be in separate ways. Topologically,
this is just three ways meeting at a single node. There's no way to
tell a driver to "carry on along the road from A to B" versus "turn
off the road at D along c". This information simply isn't in the
database.

Now, the routing application could try to guess the physical structure
by looking at which two segments are most parallel but that would fail
since the continuation is orthogonal to the road. They can't guess
based on road names either due to point 1.

Now in many ways I guess this is similar to the turn restrictions or
street relations but they both have pitfalls when describing this sort
of structure.

I don't have a solution to this problem but I was hoping to spark a
discussion about a simple and elegant way to describe this situation
in those few (but frequent enough) places that this is necessary.
Furthermore, Google directions frequently get this wrong!

Thoughts/comments/suggestions?

Regards,
Matt Williams
http://milliams.com

[1] http://openstreetmap.org/?lat=50.911352&lon=-1.016514&zoom=18
-------------- next part --------------
A non-text attachment was scrubbed...
Name: road.png
Type: image/png
Size: 19585 bytes
Desc: not available
URL: <http://lists.openstreetmap.org/pipermail/talk/attachments/20090929/0ae4d9fe/attachment.png>


More information about the talk mailing list