[OSM-dev] Data source for robot

Peter Budny peterb at gatech.edu
Tue Oct 12 14:46:17 BST 2010

Jochen Topf <jochen at remote.org> writes:

> On Tue, Oct 12, 2010 at 04:36:34AM -0400, Peter Budny wrote:
>> Frederik Ramm <frederik at remote.org> writes:
>> > Peter Budny wrote:
>> >> I'm building a robot as a school project that will use data from TIGER
>> >> imports and automatically create route relations for US state roads.
>> >
>> > My advice is not to do it; if it can be done automatically, route
>> > relations are not required
>> If route relations are not required, then what are
>> http://wiki.openstreetmap.org/wiki/Relation:route#Road_Routes for?
> Good question. What are they for? I never understood that either. :-)
>> They /are/ required, because roads may be discontiguous in various ways:
>> a road may change names (e.g. Main Street North becomes Main Street
>> South, but to a driver or pedestrian, both are just one continuous Main
>> Street), or even be physically discontiguous (some state and even US
>> Highways do this).
> So?
> Is any application actually using this? And what for?
> I am not beeing facetious, what are these routes actually useful for that
> the tags on the roads don't already do?

Road routes are useful because it avoids the dreaded semicolon (as
someone else called it).

For instance: I would love to see the correct symbol for roads on the
map--an Interstate shield, a US Highway shield, or a State Road shield
with the shape of the state.  In a road relation, a URL to this is
stored in the symbol=* key.  The renderer would just find all the road
relations a way is part of, grab their symbols, and place them on the

Currently no renderer supports this.  They draw ovals and put the ref=*
inside, which would be okay... except that they don't support
semicolons.  What they /should/ do is split the tag by semicolons, and
place all the resulting tags on the road individually.

What they /actually/ do is try to place a giant ref=* tag inside the
oval, which usually means giving up when you have "ref=US 29; US 78; US
278; GA 8" (and that's assuming you don't use the long US:US and US:GA

Relations are the cleaner solution here.  You /could/ accomplish the
same thing with regular tags, but who wants to see symbol=*, symbol_1=*,
symbol_2=*, etc. on every way in a city?  (Or worse, a giant symbol=*
tag with semicolon-separated URLs?)
Peter Budny  \
Georgia Tech  \
CS PhD student \

More information about the dev mailing list