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.
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)
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.
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
1483012route 14 VIA Rail Ocean/Océan: Montréal => Halifax
8222333route 20;22;24;26;28;34;38;622;624 VIA Rail Corridor: Ottawa => Montréal => Québec
11922066route Adirondack Amtrak Adirondack: Montréal => New York
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!
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.
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.
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 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?