World Train Map — Interactive Railway Map · 1,247 Train Routes
The world's railway map
World Train Map — 1247 train routes on one interactive map
An interactive railway map of the world: 1,247 notable train routes across 120 countries. High-speed, classic, night, scenic, heritage and luxury lines, with the facts behind every one.
From the Glacier Express, the Bernina Express and the Trans-Siberian to the Shinkansen, the Eurostar and the California Zephyr: every route is drawn on a fullscreen world map with its distance, fastest journey time, top speed, operator, rolling stock and the year the line opened. Free, no signup. The interactive map needs JavaScript; the index below reaches the same atlas as static pages.
Explore the atlas
All 1247 routes the full atlas index, by category
Every route by the numbers one sortable table: distance, time, speed, year, ridership
Fastest train in every country ranked by real average speed, not top speed
Europe train map 741 routes on one map
USA train map Amtrak long-distance lines & scenic railroads
Night trains 108 sleeper routes, with per-city pages
The night-train revival 22 sleepers back since 2016, charted by decade
The highest railways in the world 53 lines ranked by altitude, up to 5,072 m
The longest train journeys 104 rides over 1,000 km, up to 9,289 km on the Trans-Siberian
International train routes 105 cross-border trains linking 59 countries
Train vs plane door-to-door times & CO₂e on 109 European city pairs
Scenic train routes the lines you ride for the window seat
Heritage & museum railways preserved steam lines and vintage excursions, by country
Mountain railways the rack and cable lines that climb what ordinary trains cannot
Luxury train routes the trains you ride for the train itself
Train routes by country 90 countries
Open dataset every route as CSV, JSON & GeoJSON (facts CC BY 4.0)
About one person’s hobby project; corrections logged and credited
City to city 670 journey guides: times, changes, operators
Recently corrected
Eleven hundred lines are now drawn from the relation that describes them rather than from a search for them. Until today most "OSM traced" lines here were found by pulling the track inside a corridor and looking for a path across it, which is inference, and inference picks the wrong railway where two run side by side and rounds what it does find until the line sits a couple of hundred metres off the rail it means. A route relation is the other thing entirely: somebody who knows that railway listed the exact ways it uses, in order. The atlas now asks which relation a train belongs to by asking the stations it calls at, because a relation lists the stops it serves and proximity cannot tell a service from track it happens to share. Of 1,247 routes, 647 are answered by one relation covering the whole card and 176 by a chain of them. 1,093 lines were redrawn from those answers and almost none of it is a change of alignment: 1,098 of the candidates were the same railway drawn coarsely, now a median of four metres from OpenStreetMap instead of an approximation. The atlas draws 1,122 of its lines from a named relation, and measures 1,243 of them against real track at 98 per cent agreement. 2026-08-10
Twenty two routes were deliberately left alone, and it is worth saying why rather than quietly redrawing them. Their relation would move the line more than a kilometre, and that is the signature of a different railway rather than a finer drawing of the same one. Kyiv to Lviv sits 42 km from its candidate and the Roros line 51 km, which is either a badly wrong drawing or a relation for another railway entirely, and nothing here can tell which without somebody reading what the relation is actually called. They keep their current drawing until that is done. A further 424 routes have no relation at all, which is not a failure of the method but a fact about the map: OpenStreetMap has no route relation for much of Africa, Central Asia and South America. 2026-08-10
The Arlberg railway was linked to the wrong OpenStreetMap relations, and finding out why changed how the atlas looks for them. The card is Zurich to Vienna and it was drawn from three: the Innsbruck to Bludenz line, which is right; the Salzburg to Kufstein to BRENNER line, which this train leaves at Kufstein and which then carries it up a valley it never enters; and a WESTbahn service, a different operator arriving at a different Vienna terminus. All three run near our line, which is exactly how they were chosen, and proximity cannot tell a train from track it happens to share. So the question changed to a better one: look at the departure in OpenStreetMap, see which services call there, and work towards the destination. Stops know which relations contain them. The answer for Zurich to Vienna is a single relation, the railjet’s own, and the card is now drawn from it end to end, 780 km of a declared 787, measuring 99 per cent on real track where the three wrong...