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
<<attachment: road.png>>
_______________________________________________ talk mailing list [email protected] http://lists.openstreetmap.org/listinfo/talk

