Multiple lines on the same rail

So I have a railway=light_rail and I am using its name key for the line it is part of, like Line 1. However, what should I do if the same track is being used for multiple lines? Is it even appropriate to use the name key for this at all?

If this “Line 1” is a passenger train, suburb train, tram,… with a timetable, fare, …, then this “Line 1” will represented by a relation of type=route, route=train (‘light_rail’ is disputed) or route=tram,… which includes all stops, platforms and tracks.

As astarting point: Public transport - OpenStreetMap Wiki


Anyways, a more detailed explanation of what exactly I need help with.

In this (fictional OpenGeofiction) map, you can see towards the right that the “Tambayan Line” is merging with the “Rochelle Line”. I displayed the name of both lines by setting their name key accordingly; and once they had merged; I concatenated both names with a semicolon, which makes it look strange. Perhaps I could try using “Rochelle Line / Tambayan Line” as the name for the merged tracks?

And yes, I’ve been doing this for quite a few days and know how to use the JOSM presets, so I have already created route relations and the route master.

I’ve also tried looking at real-world places to find a place where the operators ran two routes on the same physical track, but I can’t find an example.

EDIT: Continuing to ponder it, perhaps the name key just isn’t the best way to express this information. I mean, OSM volunteers don’t set the name of the East Coast Main Line tracks in the UK to include the name of every passenger service that uses those four tracks.

Sidenote: I feel a bit embarassed admitting this is for a fictional map; since I feel like I’m using up OSM volunteer time for help with something that’s not in the real world and would only be useful to me and other members of that site; but I still want to learn more about OSM tagging regardless.

Nevermind. I guess I’ll just use something like “Tambayan Line / Rochelle Line” as the name. It should be good enough for now. This should have been obvious to me from the start.

There is tagging infrastructure, including a name=* tag. There is tagging collections of ways tagged rail=railway (or railway=light_rail or rail=monorail…) as either freight (often) or passenger (as is sort of done in a certain way especially in Germany) or freight-and/or-passenger rail. THEN, there are version 1 (existent, but please upgrade them) and version 2 route=train (and route=light_rail and route=tram and route=subway…) relations. There are route_master relations to fit together PTv2 routes. There is a right, correct method for all the pieces (of rail-tagged infrastructure) to be tagged (including usage=* tags…) and all the collections of these for passenger routes. It’s a lot, but many understand it, can teach it, have written wiki and produced videos about it, it is 100% “learnable.”

Differing rail services are “run on the same rails” frequently on our planet. “Around here,” an example is how “light_rail” and tram/streetcar share tracks around the Embarcadero in San Francisco, California.

It can take a while to get the hang of how all the pieces (infrastructure, route=railway relations, route=train and other passenger relations) fit together. Keep asking, keep learning, it can be helpful for others, too. Your pictures begin to help, both yourself and us reading here.


I’ve decided to go with both display names for the rails, which will be for the human looking at the map, and route relations for both of those lines running on the same physical rails. Thanks though! I’m always learning more everyday about OSM’s tagging infastructure.

“By George, I think you’ve got it!”

1 Like

A final addition: when you say “for the human looking at the map” that comes curiously close to tagging for a particular renderer; we don’t want to do that. Tag for “what is” (now, today, as it is, perhaps not perfectly, a rough sketch of what you DO know in a tag or two or three is 100% fine).

So even thinking about these as “display” rails seems a little “dangerously hot,” close to our “don’t tag for the renderer” tenet. Think of this as “name them (often as elements of railway=rail) as we name rail in OSM.” Done like that, the data (usually elements of railway=rail) get the tag(s) it/they deserve. One at a time, perhaps with some positive feedback in a renderer, but that is simply getting warm and OK, not hot and dangerous. This distinction is subtle!

These (often way elements tagged railway=rail) can and do get collected into relations tagged route=railway, quite separate from passenger rail relations tagged route=train (or =subway or =light_rail or =tram or =monorail…). And so on.

OSM is a relational database, relations kick in with rail and routes (route=railway and route=train and its flavors are distinctly different things). As I say, it is a climb up a flight of stairs or three for all the pieces of this to fit together how we do it. We do it, with agreement, and it isn’t difficult once learned. Then, how much the world “agrees” about “how we (OSM) do rail (in OSM)” is an ongoing project. We might say “some, quite a lot, not perfectly harmoniously and it does improve.” Well, I’ll say that, and I’ve been an observer and participant for over a decade.

Welcome aboard.