[Routing] [motorway_link] description of direction
Jon Bright
jon at siliconcircus.com
Mon Jun 16 15:38:21 BST 2008
Hi,
Nic Roets wrote:
>
> I may not understand you correctly.
I perhaps didn't explain well. I've made a very rough model of the
Boulogne junction that I mentioned in my previous mail.
http://discord.ensued.net/boulogne.png
The user is on the orange way and will be routed to the yellow way.
Depending on the class (or lack) of vehicle in question, the route will
either be orange, blue, yellow or orange, gray, magenta, yellow.
The only points in this map that are relevant for a routing system (to
this fraction of the route) are A, B, C and D. The system has a
precalculated table that says
A->B = 70m
B->C = 88m
C->D = 190m
A->D = 188m
And it doesn't store any information at all about the nodes between A
and D, between A and B, B and C or between C and D, as it doesn't need
to know that information in order to produce a route. (The nodes may be
present at another level to aid it in its map display, but they won't be
considered at the routing stage.)
Since considering the intervening nodes may be an inconvenience to
implementers, I was thinking that anything we come up with should
restrict itself to (in this example) referencing nodes A, B, C and D.
But if you restrict yourself in that way, it's difficult to
differentiate the two possible routes. For the longer route, you can do
from=orange, to=yellow, via=B
or
from=orange, to=yellow, via=C
...but the other route has to be...
from=orange, to=yellow, via=A
or
from=orange, to=yellow, via=D
...neither of which uniquely identifies the route, since the longer
route also goes via A and D.
But you should in all cases be able to uniquely identify a route when
specifying ways. So:
from=orange, to=yellow, via=blue
from=orange, to=yellow, via=gray (or magenta)
> My understanding is that the 'via' node will always occur in both the
> 'from' way and the 'to' way.
Hm, that doesn't fit with my understanding.
> The difficult case is http://www.rational.co.za/routeRelation.png
> All 3 ways are bidirectional. If the computer wants to route you from
> the gray way to make a left turn (with or without reaching the green
> way) it needs to be able to reliably detect which relations to use.
Right - tricky case. I don't think "via" helps that case, no matter
whether "via" is a node or a way? Taking on your suggestion of
specifying left and right: possibly as a new "direction" tag in the
suggestion from my previous mail?
<relation>
<member type="way" role="from" ref="...gray..." />
<member type="way" role="to" ref="...orange..." />
<tag k="type" v="route_info" />
<tag k="direction" v="left" />
<tag k="text:en_ZA" v="...specific directions..." />
</relation>
<relation>
<member type="way" role="from" ref="...gray..." />
<member type="way" role="to" ref="...orange..." />
<tag k="type" v="route_info" />
<tag k="direction" v="right" />
<tag k="text:en_ZA" v="...specific directions..." />
</relation>
--
Jon Bright
Silicon Circus Ltd.
http://www.siliconcircus.com
More information about the Routing
mailing list