I'm trying to understand how implied tags work. I've been doing some Googling and searching around on the OSM wiki, but haven't clearly understood them.

  • If I tag a way highway=footway, then (by this list), a routing engine will assume that this path cannot be used for motor vehicles (as if the way was tagged motor_vehicle=no) - depending on the country. Is this correct? Is this implied tagging implemented in each routing engine separately, or is it a built-in feature of the OSM database (i.e. is there a "master" list)?
  • The implied access tags for highway tags seems to be reasonably well documented, but other tags (notably barriers) seem to have implied tags as well. For example, barrier=bollard (according to the wiki) implies foot=yes and bicycle=yes. This documented on the wiki page for that specific tag - is there a central list of these implied tags? And, like above, I take it these are implemented at the behest of every routing engine programmer?
  • Can I "override" an implied tag, or is this a bad idea? For example, explicitly tagging foot=no on a highway=path if (by sign) pedestrians are not allowed on that path (even though, by default, highway=path implies foot=yes)?
  • Are there other kinds of implied tags, other than access tags?

The reason I stumbled across this is that I do a lot of bicycle-related tagging, and I'm perenially checking the wiki to make sure that the features I'm tagging (based on what I see on the ground) don't by accident imply access tags that would cause routers to route i.A. bicycle traffic a different way.

asked 16 May '18, 14:27

Lightsider's gravatar image

accept rate: 42%

edited 16 May '18, 14:31

  • Routing engine developers are responsible for making sure their routing engine assumes sensible defaults, which is done separately for every application consuming OSM data. This is not built into the OSM database at all. It's just a set of conventions that mappers and developers (hopefully) agree on, and it's documented on the wiki in the hopes of achieving this agreement and avoiding misunderstandings. Unfortunately, this does not always work, and you sometimes end up with routing engines making mutually incompatible assumptions as a result.
  • There's no central list of default values and implied tags that I know of. The "implies" field from the wiki infobox template is, in theory, machine readable. In practice, I believe these tend to be implemented manually by data consumers in their respective projects.
  • Yes, you can override defaults. It's not unusual and it is often necessary to do so.
  • There are a couple examples that are unrelated to access restrictions, such as amenity=drinking_water implying drinking_water=yes, but these aren't very common.
permanent link

answered 16 May '18, 16:21

Tordanik's gravatar image

accept rate: 33%

There's no master list. Even if there was, a given routing engine could ignore it. The various wiki pages are probably the closest thing to a "central" list, but you can also look for rules implemented by a given engine.

It's okay to override an access tag. But consider using some other highway tag than highway=path if foot access isn't allowed, like if it is a for bicycles, highway=cycleway.

permanent link

answered 16 May '18, 14:49

maxerickson's gravatar image

accept rate: 31%

Your answer
toggle preview

Follow this question

By Email:

Once you sign in you will be able to subscribe for any updates here



Answers and Comments

Markdown Basics

  • *italic* or _italic_
  • **bold** or __bold__
  • link:[text](http://url.com/ "title")
  • image?![alt text](/path/img.jpg "title")
  • numbered list: 1. Foo 2. Bar
  • to add a line break simply add two spaces to where you would like the new line to be.
  • basic HTML tags are also supported

Question tags:


question asked: 16 May '18, 14:27

question was seen: 802 times

last updated: 16 May '18, 16:21

powered by OSQA