[OSM-talk] Map Features: Road classification schemes for worldwide use

Wollschaf mith at uni.de
Fri Sep 1 00:01:55 BST 2006


As OSM grows bigger and attracts more users from all over the world, the
current highway scheme to classify roads turns out to be too inflexible to
be expanded adequately. It is also misleading to combine physical and
administrative / logical properties in one tag, especially if the tag is
used for more than one country. Given the fact that creating an own set of
highway values for every country is too much work, too hard to adapt for
foreign mappers and - most importantly - not at all being easy to render,
a new scheme has to be found that can be applied universally.

Several users outside the UK can't tag properly, I for one need a set of
tags to describe roads I mapped in Sardinia, and the highway scheme simply
does not fit. So I think this issue is of a certain importance.

After some thinking and discussion, the following facts emerged:

- Some countrys do not have an official road classification scheme.
Forcing users to fit roads into another scheme is not very good.

- Almost every country has a (slightly) different scheme. There are too
many countries to create a unique scheme for every country and have route
planning / map rendering software cope with that.

- Physical and administrative / logical properties should be separated

- Putting several physical properties into one scheme is not flexible
enough; Each physical property should get its own tag.

- A scheme to classify common roads that simply implies several physical
properties that can be overridden by their respective tags facilitates
tagging and storage requirements.

- Compatibility with existing tags is necessary; Automatic conversion or
addition of the new tags is a possibility once a draft has been finished.

If I forgot something, please add it.

I have put two pages in the wiki that can serve as basis to discuss and
develop a more universal scheme to classify and describe roads.

Physical road properties:
Worldwide road classification (physical)
http://wiki.openstreetmap.org/index.php/Worldwide_road_classification_%28physical%29

A main problem describing a road is that the width is hard to estimate. In
my opinion it is far easier to remember and estimate road widh using
vehicle units (car and truck widths). Software can still take default
values for these "units" if a width estimate in metres is needed and a
width value is not given. It is also far easier to comprehend that a road
is wide enough for two cars to pass, but not for two trucks than a width
value of four metres.

I finally came up with a key named lane_layout (which may be renamed as
soon as a better name is found) that describes each lane using a letter.
Examples for normal roads:
...
lane_layout="c" One lane; car fits on road, has to be slow 
lane_layout="C" One lane; car fits, enough space to open the doors ;) 
lane_layout="cc" Two lanes; a road where two cars can pass slowly
lane_layout="CC" Two lanes; a road where two cars can pass without
problems

motorways:
lane_layout="TTT" Three lanes; big enough for three trucks. It does not
include permission for trucks to use all lanes, but the road is big enough
to allow that physically.

c and C stand for one car respectively - one for a narrow road and one for
a normal one regarding a car. The same applies for t and T which stand for
trucks.

For more than one-lane asymmetrical roads, left and right can be defined
by segment direction. It is not necessary to allow asymmetrical roads, but
it might prove handy to be able to describe those.

An alternative to describe narrow roads is of course using a tag that has
one of the values (very) narrow, normal and (very) wide. Very narrow for a
truck is wide for a car, so essentially a reference has to be found. I
think lane_layout is more flexible and precise in this respect, and
essentially the same.

A third alternative is to take fractions of lanes and define a road where
two cars can only pass driving slowly by lanes=1.8; IMO it's weird and
hard to remember.

Perhaps somebody comes up with a better (more intuitive) scheme than mine.
I will happily adopt it.

Width values (measured) and approximate_width (estimated) are by no means
obsolete, whichever way the intuitive classification is made; These keys
will override the guesstimates given by lane_layout.

Logical road properties:
Worldwide road classification (logical)
http://wiki.openstreetmap.org/index.php/Worldwide_road_classification_%28logical%29

The main idea here is that each country has a classification scheme
ordered by importance of the roads. It might be best to assign each
logical road class a numerical value.

Adapting to the uk-centric highway scheme, this could look like

wayclass=1: motorway
wayclass=2: trunk
wayclass=3: primary
wayclass=4: secondary
wayclass=5: minor
wayclass=6: residential
wayclass=7: track

(rename wayclass if better name at hand)

The country using the scheme has to be defined, either in a separate
country-tag [1] or in something like wayclass="uk:1"

Countries without motorways should have the possibility to add those
values later, and start at a higher value / lower priority.

Route planning software can then look at the priority and find routes with
high efficiency.

A default set for those values can be created and somehow restricted; If
values 1 and 2 are reserved for dual-carriageway roads, the rendering of
beautiful and meaningful maps will be pretty easy regardless of country. A
wiki page can define and explain the numerical values.

I hope that some useful ideas come up in this thread, as my brain is
limited in its creativity and ability to solve this problem to everyone's
complete satisfaction.

happy mapping,
Wollschaf

[1] country tag can also be applied server-side to every node, segment,
and way by excessive computation and a detailed world map. Being able to
filter OSM data automatically by country sounds like a neat possibility.










More information about the talk mailing list