[OSM-talk] A new highway tagging scheme

Jeffrey Martin dogshed at gmail.com
Mon Aug 27 09:24:04 BST 2007

On 8/27/07, Andrew MacKinnon <andrewpmk at gmail.com> wrote:
> I think that our current highway tagging scheme is too limited. The trunk,
> primary, secondary and tertiary road types are loosely mapped to
> administrative classifications, but they are also linked to the physical
> state and the "importance" of the road. Administrative classifications
> frequently have little to do with the importance or the quality of the road.
> For example, sections of certain motorways (like Autoroute 20 west of
> Montreal, Quebec, Canada) have traffic lights and intersections, but they
> are still officially classified as motorways.
> For this reason, I propose a new tagging scheme which separates the physical
> quality of a road and its administrative status. It replaces the current
> highway tag with two tags, a tag which reflects the highway's quality of
> construction and one which displays its official administrative status.
> Currently, footpaths, cyclepaths and bridleways will be unaffected by this
> reform. Here is an example of how it could work:
> * Highway tag - provides basic information about the type of road (ignoring
> all administrative classifications)
> - Motorway (existing) - a controlled-access highway with at least two lanes
> in each direction
>  - Motorway_link (existing) - a slip road
> - Two_lane_motorway - a controlled-access highway with slip roads but only
> one lane in each direction, and generally no median. Also known as a
> "super-two".
> - Dual_carriageway - a non-controlled access road (trunk road, arterial
> road, etc.) with a median in the centre
> - Multi_lane - a non-controlled access road (arterial road, etc.) with no
> median in the centre. Centre islands may exist at intersections.
> - Two_lane - a paved road with two lanes, one in each direction, and a
> painted line in the centre. One way roads with 2 or more lanes, which do not
> form part of a motorway or dual carriageway, should be tagged two_lane.
> - Minor - Any road currently tagged highway=residential or
> highway=unclassified. A road, whether paved or unpaved, wide enough for two
> cars to pass, with no painted line in the centre. If it is one way, the road
> should be wide enough for two cars to fit side-by-side.
> - Narrow - Any road, paved or unpaved, not wide enough for two cars to fit
> side-by-side; in urban areas, these are generally one-way streets. In rural
> areas, traffic in both directions is often allowed.
> - Track - An unpaved road which is not covered with gravel, and/or which is
> only suitable for 4WD vehicles.
> Note that there are no direct equivalents to primary, secondary, or tertiary
> here. These tags will be gradually retired, replaced with the new tagging
> scheme, because they do not provide enough information. It may be possible
> to use a script to convert primary, secondary, tertiary to the new scheme in
> an area where these tags have specific, known meanings.
> * Administrative tag - provides information about a road's administrative
> classification. The specific meaning of these highway tags can be determined
> by checking which region a highway is located in. Alternatively, some sort
> of jurisdiction tag could be used.
> - National - administered by the national government. If roads are assigned
> a national numbering or naming scheme scheme, but maintained by regional
> authorities (e.g. US highways, interstates and the Canadian Trans-Canada
> Highway), they are tagged as national.
> - Regional - administered by the regional government (e.g. state or
> province).
> - Regional2 - administered by a second level of regional government, if it
> exists. In the US and Ontario, Canada, this is used for county roads.
> - Local - administered by a municipality or other local authority
> - Private - owned by a private landholder. Assumes access=private unless
> access=permissive is specified.
> * Admin_type - provides information about a road's administrative class, if
> multiple classifications exist. This is not needed for motorways, if they
> are tagged as highway=motorway or highway=two_lane_motorway, and primary
> two-lane highways, if tagged as highway=two_lane or
> highway=dual_carriageway.
> - Motorway - Legally classified as a motorway. May not actually be a
> motorway in certain sections.
> - Trunk - In the UK, a one- or two-digit A road.
> - Primary - Legally classified as a primary road - e.g. A roads, primary
> provincial/state highways
> - Secondary - Legally classified as a secondary road - e.g. B roads,
> secondary provincial highways
> - Tertiary - Legally classified as a tertiary road - e.g. C roads, tertiary
> provincial highways
> * Additional information - can be provided by existing tags such as
> maxspeed, oneway, surface, lanes, width, traffic_lights, stop, etc.
> _______________________________________________
> talk mailing list
> talk at openstreetmap.org
> http://lists.openstreetmap.org/cgi-bin/mailman/listinfo/talk
After some of my posts and my editing of the wiki I thought of proposing tags.
The main reason I didn't is because people will still use an incorrect
tag to make
the map render a certain way instead of using the correct tags and changing
the rendering rules.

I just listened to the Andy Robinson lecture.

One point he makes is that tagging should be a bottom up approach. Now
if people can use any tags they want then what makes a wrong tag? Even
in a situation where we can
make up tags and tag values as we see fit there are still a couple of
things that can
make a tag wrong. First, a tag is wrong if it's a lie. Second, true
information becomes a lie if it's in the wrong category.

XML comes from SGML. I never used SGML but the explanation in the
original book is spectacular. The SGML Handbook by Charles F. Goldfarb
(Get a copy from interlibrary loan, read the first part where he
explains the philosophy and then forget the rest of the book.)

Let's say I'm writing a book and I tag some text as Italian and some
other text as Spanish. I send my book to my publisher. My publisher
talks to the programmer and has him make all the Italian text render
as italics and all the Spanish text render as bold. That's fine.

Now let's say I get a copy of that software and I try to use it to
self publish a medical book. I want all my medical terms to be in
italics. I don't know how to change the program. What do I do? I tag
all the medical terms as Italian. Even if I label them as medical
terms it's still a lie if the label is the wrong key, class, or other
kind of category. Labeling a medical term as "medical term" is a lie
if it's "country of origin"="medical term".

People are fudging the tags to change the color of the line in their
favorite rendering software
which results in lies in the data.

We should have a couple of more classes of information, some more
tags, and some methods of deriving tags, but it won't matter unless we
have some solutions to the lying problem.


More information about the talk mailing list