Every notable passenger train route I could verify, drawn on one map with no basemap under it, so the rail lines themselves trace the coastlines. 1,166 routes across 119 countries, about 309,000 km of line once shared corridors are counted once.
Coloured by what kind of journey it is: 459 classic intercity, 246 scenic, 138 heritage, 135 high-speed, 108 night trains, 48 funiculars, 32 luxury cruise trains.
The geometry is the part I have spent the most time on. Route shapes are traced from OpenStreetMap railway relations and ways rather than drawn by hand, so the lines sit on real track. This week I finished a pass that put the last stragglers on their actual alignment, including a Saudi line that turned out to be running 200 km up a branch and back down again.
It is a free hobby project, no ads and no signup, and the route data is open. Corrections are genuinely welcome and get credited; forum readers have already fixed a number of errors in it.
Caveat worth stating plainly: it is a curated atlas of notable routes, not a complete inventory of the world’s railways. Somewhere like China or Germany has far more track than the routes shown here.


GTFS Realtime has that data. For Canada this site shows the delays, currently Vancouver-Toronto train is 37 minutes late: https://maps.catenarymaps.org/?page=trip&chateau=viarail&trip=111&route=8-119&start_date=20260729#map=6.2%2F50.288%2F-92
It’s just up to programmers to create a map which displays these feeds. E.g. .for Hungary we have this site which shows delays real time: https://vonatinfo.mav.hu/ Green is less than 5 minutes late, yellow 6-14 mins, orange 14-59 mins, red more than 1 hours. This is an official site, but the data is public, so 3rd parties can build around that. That’s how Gmaps knows how much a train is late.