Railway operator app railmap.gl

I am working on an app focusing on railroad operators, called railmap.gl. It uses maplibre and three.js. (atm it is just North America)

if you hit the > on the top left, you get a list of rendered operator values, these mostly come from the ‘operator’ tag, but they can also be rendered from tags like ‘operator:en’, ‘operator:short:en’, ‘operator:short’, ‘operator:wikidata’, ‘reporting_marks’, etc. it also checks for common things like ‘and’ vs ‘&’ and ‘railway’ vs ‘railroad’
if there is the tag ‘tiger:reviewed’ (with value ‘no’) the listing will be highlighted red.

Some data may not be appropriate for OSM like operator logos, and operator theme colors for the map. These can be edited if you log in (via OSM).

The buttons on the right toggle on-screen operator/yards/routes.
You can use your own developer keys to view satellite tiles.
You can place a unit on any track (not yet subway, tram, light_rail) with command or control click.

There is a lot missing (like all non track rail stuff) and the non-rail stuff is out of date.
feedback and comments appreciated.

7 Likes

Very cute idea! I love maps that expose more of the tagging on OSM.

Is there a way to get a more traditional top down perspective? The slanty maps make my head spin a bit ha.

1 Like

Thanks!. Yes, drag down with the right mouse button. (two finger drag on trackpad) Also, right mouse-button-drag left-right to rotate the map.
(and clicking the small compass under the up and down arrows will rotate the map to North/up)

1 Like

Impressive! As a long-time USA rail mapper in OSM, I like this. Thank you!

Still stumbling along in this rendering as I’m brand-new to it, perhaps I’ll have more to say later.

1 Like

Please make that available world-wide, it looks very cool!

Please expand the attribution (i) on the bottom right by default to attribute OpenStreetMap a bit more prominent.

3 Likes

This is great work! I’ve been bummed for a long time that openrailwaymap.org is missing an operator layer, which is essential for rail networks run mostly by private companies. This goes above and beyond what I expected!

I would love to see labels that concatenate the operator=* and name=* of each line. As it is right now, there is a tendency for North American rail mappers to shoehorn the operator into the name (e.g. name=BNSF Mojave Subdivision), because there are several cases where nearby lines have the same name but different operators, and mappers want labels to be unambiguous. If there were a renderer that labels lines based on a combination of these tags, perhaps that would encourage mappers to return to the practice of name is the name only, and stop duplicating operator information.

3 Likes

Thank you!

Thank you!
It will be world-wide. (might take a week or two)
i will expand/fix the attribution today.

1 Like

Thank you!
I have added a ‘include tiger values and name values’ option in the report area.

1 Like

Quite interesting. I suggest that labels on railways should make a distinction between the railway owner/operator and the operators of passenger trains. The name could show the railway operator while train operators could be tagged with a shield.

Around Montréal, passenger trains operated by Via, Exo and Amtrack circulate on CN or CPKC railways, but on the exemple below, the rail is identified as Via, one of the passenger trains operator.
ways 652103082 and Way: ‪CN Subdivision Saint-Hyacinthe‬ (‪10660433‬) | OpenStreetMap in route=train Relations

  • 1483012 route 14 VIA Rail Ocean/Océan: Montréal => Halifax
  • 8222333 route 20;22;24;26;28;34;38;622;624 VIA Rail Corridor: Ottawa => Montréal => Québec
  • 11922066 route Adirondack Amtrak Adirondack: Montréal => New York
2 Likes

It seems as though they are missing CN in the operator tag which is why it’s diplaying VIA

If you browse around Detroit (Michigan), the “MDOT Michigan Line” (Michigan Department of Transportation, in essence the “state-owned rail”) displays as “Maryland Department of Transportation,” clearly an error (Maryland is at least 1000 km away from Michigan).

Sure, it’s most likely because MDOT is ambiguous in the context, and so getting parsed wrongly. But it’s also only a minor bug.

I’m having fun doing some “pan and scan” around the lower 48 and Alaska!

1 Like

I have removed the ‘MDOT’ = ‘Maryland Department of Transportation’ rule
Thank you

2 Likes

There do seem to be a lot instances where the operator is in the name, but not in the operator tag.

1 Like

For passenger vs freight, I wonder if two different map layers would be a good idea.

Sometimes, the owner tag is added while the operator tag is not.

1 Like

Operator and especially owner name (or operator:short) prefixing the name of the “line” (usually a subdivision name) is an ongoing issue in OSM’s USA Rail. Our wiki makes recommendations, but they are not always followed or are followed inconsistently. This is quite apparent in a rendering like this, which might seem problematic, but I believe railmap.gl highlights these in (good, visible) ways that allows us to fix them.

A year or so ago, a community volunteer request was made of ORM to contain an “operators layer,” and while I believe the ORM developers were made aware of this request (I think I suggested the request be made into a feature request in ORM’s tracking system), it does not appear ORM will be doing this any time soon. The feedback seemed to be that this was a fairly North American-centric request.

The bottom line is that the USA’s rail data in OSM have a hodgepodge of tagging schemes to signify operator and owner data, sometimes in the name=* tag, sometimes not, sometimes in owner=* and/or operator=* tags. It isn’t clear what the best strategies might be to fully harmonize our data, but that should be a longer-term goal of ours. Reaching some consensus on what we believe that to be is a good initial goal, then we can implement this in our map data. If this means discussion here and/or updates to our United States / Railroads wiki, then so be it.

I’m not sure “two different map layers” (of railmap.gl) for passenger vs freight is a best solution, but we should keep it on the table as an option, as the author actively “wonders out loud” about it.

2 Likes

ORM is basically “dead”. There is a promissing fork that converts it to vector tiles. The fork owner is open to new ideas

I’m sure that some features from this map can be ported over.

There is already a layer for track classes, and it displays reporting marks in an info-popup.

Only Europe currently has generated tiles.

3 Likes

Thanks for the link to Vector-based ORM.

And as long as we’re adding links, here is some context to the “a year or so ago” dialog I recalled above: Rendering `reporting_marks` on OpenRailwayMap .

I can’t wait for these new ORM vector-tiles to include all of Earth, especially North America. But in the meantime, can you (@wolfy1339) be more specific about what you know of the “old-style” ORM (raster-rendering)? Is it really “dead” as in not being maintained and/or updated? The (raster) tiles don’t even refresh? Thanks in advance.

1 Like

Elliott here. For this post I am wearing my MDOT (the Maryland version) hat as a GIS consultant for the state!

First, this is way awesome!! Thank you. I just shared with our railway operations folks. They were fans of the ORM and we’re sad to see that has fallen out of favor. However, this app presents a good use case for keeping our rail data up to date. We’d love to get you a better tagging map of Maryland DOT rail assets.

Now wearing my OSM mapper hat: also great work :slight_smile: I can say that many of the tagging structures we’ve seen come from NE2’s work. I’ve updated lots of his work, often more on the abandoned side, but these ‘old’ tagging values seem to be invented and are certainly unclear at times to the non-railfan.

I’d suggest pulling the operator from the operator:wikidata tag. This would clear up similarly named agencies, or unclear outdated ones. If I make some edits in the app will it write back to OSM?

2 Likes