roads over streams

when creating roads that pass over small streams i get an warning " crossing ways"
im thnking i need to add a bridge even though its just a small culvert ?

If it’s a culvert, then you could tag the section of the stream that runs below the road as tunnel=culvert. You might need to split the stream for this.

You should also make sure that the stream section’s layer is lower than that of the road.

thanks for the help
so if i make the culvert layer -1 it will show under the road surfae ?

Just use culvert=yes and layer=-1 in these cases.


If the the road has layer 0 or higher (it’s 0 if no layer tag is explicitly given), then this means that the stream is lower than the road if it has layer -1 and crosses the road way. I would also tag it as a culvert, though.

Basically, I agree, but tunnel=culvert is a better choice than culvert=yes.

The vast majority of these have been tagged as tunnel=yes. Adding the “culvert” distinction as a value is a (minor) improvement over tunnel=yes. But inventing a completely different key for something that will be treated the same as tunnel=yes by almost all applications wouldn’t be appropriate.

I have been thinking that the validator nagging about crossing roads and ditches is dull. In vast majority of cases the water is below the road at least in our country. And culverts with 50 cm diameter do not really feel like tunnel.

And the next guy will complain that he needs to set a highway=ford node to mark a ford. After all, its obvious that you have a ford when a road and a waterway cross on the same level, isn’t it?

There’s no way any application developer will build in all the stuff people consider obvious. In the more benign cases, devs will just not think of some special case and can add it later. But often enough different people consider different things “obvious”. Usually, we notice that fact when we already have a few hundred thousand instances of that situation in the database and no way to tell which assumptions were used in which instance.

How about just tagging things unambiguously without relying on implied special cases? Once you know how to use your tools, doing it right only takes a trivial amount of additional effort.

If this bothers you, add a width=0.5m.

Doing it right in that way would mean millions of splitted ditches and tunnels. I do not really believe you would do it yourself if you were mapping Finland but naturally I may be wrong. National Land Survey of Finland has not felt if necessary yet during the 350 years of its existence. This link shows a very typical situation with some ditch and road crossing about every two hundred meters

I agree completely. A culvert is not a tunnel in the usual sence of meaning even if both are underground. “culvert=yes” is just about correct.

And as soon as streams become larger (e.g. rivers) the usual tagging is “bridge=yes” and “layer=1” for the highway but almost never “tunnel=…” for the waterway.


Most people haven’t ever heard the word “culvert”, so they have tagged this case as tunnel=yes for years and continue to do so. Apparently “runs below the surface” is “tunnel-like” enough for most. culvert=yes may be more linguistically correct than tunnel=culvert for certain definitions of “tunnel”, but it has no practical advantage whatsoever.

I don’t know either, obviously. Maybe I would consider building a culvertifier tool if it’s such a frequent task.

But anyway, the situation essentially comes down to this: You can either tag it in a manner that will be reliably understood by applications but takes a lot of effort (tunnel=culvert + lower layer), use a somewhat less precise style that is clearly less effort (lower layer only) or entirely leave it to applications to guess your intentions and accept minor errors in those applications that rely on the usual assumptions. It’s your choice, of course.