World Train Map

About

About World Train Map

A free interactive atlas of a selection of the world's notable railway routes and train services. No ads, no signup, no third-party trackers — visits are counted anonymously on this site's own server (how, exactly).

World Train Map has been built and is run by one person, based in Norway, as a hobby project. AI was used in the code and in the initial data collection. The selection of routes, every correction and every fact published here are vetted by humans.

Particular thanks go to the members of the OpenStreetMap community forum and RailUK Forums, whose corrections and route suggestions have made this atlas measurably better.

It is a selection, and it maps services rather than the whole network. Blank space between the lines means a railway this atlas has not drawn, not an absence of track. A named train rarely has a railway to itself either: the Glacier Express, for one, runs over the same metals as the local services that work the Rhône and Rhine valleys all day long.

People who know rail maps ask how this differs from OpenRailwayMap. OpenRailwayMap draws infrastructure: every track, siding and signal in OpenStreetMap, and it is excellent at that. This atlas draws passenger services — the journeys a train will actually take you on, end to end, with distances, times and the story of the line. One maps the railway, the other maps the ride; much of the geometry here is traced from the same OpenStreetMap data, so they agree about where the rails run.

How routes are chosen

There is no algorithm deciding what belongs here, and the atlas is not generated from OpenStreetMap or Wikidata by a rule — which is why a line can be active in those databases and still be missing from this map. The selection is human and it grew in layers: the famous named trains first, then the high-speed networks, then the everyday intercity corridors that connect them, then night trains, scenic lines, heritage railways and mountains, and at every stage the routes that people who ride them wrote in to suggest. Reader suggestions from the OpenStreetMap and RailUK forums are the single biggest source of additions since launch.

Three rules shape what gets in. It must be a scheduled passenger journey you can actually take — no freight lines, no closed alignments, and lines under construction wait until there is a train to ride. Each railway is drawn once, so a service whose entire path already lies on drawn lines is folded into those cards rather than duplicated. And coverage is deliberately uneven while the atlas grows: dense where a country's network has been worked through, thin where it has not been yet. Thin coverage of a country is a to-do, not a verdict on its railways.

What is written about each train comes from approximate published figures gathered from public sources: train operators' sites, railway timetables, Wikipedia. The schedules shown are not live and cannot be used to book. For up-to-date times and fares, always check with the relevant operator, or use a railway journey planner. For most of Europe the best one-stop planner is bahn.de, the German railways' one, which has been answering timetable queries on the web since 1995 and covers far more than Germany.

The route facts are open data under CC BY 4.0, archived with a DOI (OSM-traced geometry stays © OpenStreetMap contributors, ODbL), and the map can be embedded on any site for free.

The same person also builds a few sister atlases: Castlemap, Sunshine Map, FilmMap and Detourmap.

How much of it has been checked

Every route page ends with what can actually be shown about that line, and the counts below are the same claims added up. Each one is a record, not a judgement: nothing here is inferred, and where there is no record the page says nothing at all rather than something weaker.

Drawn from a named OpenStreetMap relation
1122 of 1247 routes
Measured against real OpenStreetMap track
1243, sitting a median 5 m from it
…of those, on track from end to end
968
Checked against a live running timetable
539
Carrying a Wikipedia article
1145
Able to show nothing about their line
2

These are two different kinds of claim and the difference matters. A relation is where a line came from: somebody who knows that railway listed the ways it uses, the line here is built from their nodes, and the route page links the relation so you can open it and disagree. A measurement is where the line actually lies: 1085 routes were walked in ten-kilometre legs on a router that can only travel along OpenStreetMap track, and our drawing compared with what came back, in metres. Of the two, the measurement is the one worth more to a reader, because where a line came from is a story and where it lies is a fact.

Until August 2026 this page also claimed that most of the atlas was “traced onto the OpenStreetMap rail graph”, on the strength of how many decimal places each line's coordinates carried — the tools that write them round differently, so the rounding identifies which tool wrote a line last. That is a fingerprint of a tool and not evidence about where a line is, and it has been removed rather than reworded. It is why the first number above is smaller than the one that used to sit here. The licence is unchanged: much of this geometry is derived from OpenStreetMap whether or not each route can prove it, so the ODbL attribution stays.

The other 158 are the railways that router has never heard of: funiculars, forest railways, 60 cm gauge and island steam lines, which are not in a graph built for trains that go somewhere. They were measured against the track OpenStreetMap maps around them instead, which is a slightly weaker answer — track nearby rather than track you can travel along — and it is recorded as such. A line that strays says so on its own page, and names the longest stretch it strays for.

Errors get fixed

An atlas of 1247 routes will contain mistakes. Any errors or omissions can be reported to me: corrections are usually made within one day, and every major modification is dated and credited in the corrections log.

Found one? Email ceoflightmussy@gmail.com, open an issue on the dataset's GitHub repo, or mention it wherever the atlas is being discussed.