The world's legendary train routes as an open dataset (CSV/JSON/GeoJSON) plus an MCP server, from worldtrainmap.com
World Train Map Atlas — the world's legendary train routes, as open data
以下摘录自该仓库的 README(片段) · 在 GitHub 读完整 README →
**961 train routes · 118 countries · ≈ 432,800 km of route**, every route with its key facts and its geometry, from worldtrainmap.com, the interactive world railway map.
High-speed spines (Eurostar, TGV, Shinkansen, AVE), classic long-distance runs (Trans-Siberian, California Zephyr), night trains (Nightjet, the Ghan) and the scenic lines people fly in just to ride (Glacier Express, Bernina Express, the Jacobite).
🗺️ **Explore it interactively:** worldtrainmap.com
🤖 **Use it from an AI assistant:** free MCP server at https://worldtrainmap.com/mcp (how to connect), or run it from this repo: npm install && npm start (mcp/)
> **The site was renamed.** It was TrainRouter at trainrouter.com until 11 August 2026 and is now World Train Map at worldtrainmap.com. The old domain redirects path for path, so old links still work, and https://trainrouter.com/mcp still answers directly rather than redirecting, because JSON-RPC clients do not follow redirects. Nothing you already had configured has broken. The repository, the Zenodo DOI and the MCP registry name (com.trainrouter/atlas) keep their old identifiers on purpose: renaming them would break more than it would tidy.
Which version holds what
Several different route counts are in circulation for this atlas, so here is the honest map of them.
| Where | Routes | Cut | Note |
|---|---|---|---|
| The live site | 1,338 | today | worldtrainmap.com, always the newest |
| The MCP server | 1,247 | 11 August 2026 | deployed separately from the site, so it lags it a little |
| data/ in this repo, and Hugging Face | 961 | 23 July 2026 | what you get by cloning or downloading here |
| Zenodo (the citable DOI) | 744 | 12 July 2026 | release v1.1.0, the last tagged one |
**Why the download is behind the site, and it is deliberate.** Since late July the route geometry has been progressively re-traced from OpenStreetMap railway relations, which makes it a derivative of OSM data under ODbL, while this package is licensed CC BY 4.0 throughout. Publishing a refresh before the licence is split per route would ship a licence violation with our name on it, so the exporter is blocked until that work lands. See *Sources, accuracy & provenance* below. If you want something fresher than the July cut without waiting, the MCP server is the closest available.
Files
| File | Contents |
|---|---|
| data/routes.csv | One row per route, all facts, no geometry |
| data/routes.json | Same records with structured country objects |
| data/routes.geojson | LineString per route (lon/lat waypoints) plus all facts as properties |
Schema
| Field | Type | Notes |
|---|---|---|
| id | string | Stable slug, e.g. glacier-express |
| name | string | Route/service name |
| from, to | string | Terminus cities |
| category | enum | In this cut: high-speed · classic · night · scenic · luxury. The live atlas adds mountain and heritage |
| train | string | Rolling stock, e.g. e320 · Class 374 |
| operator | string | Operating company |
| distance_km | number | Route length |
| top_speed_kmh | number | Service top speed |
| duration | string | Published journey time, e.g. 2 h 16 min |
| opened | number | Year the line/service entered service |
| pax_per_year | number\|null | Approx. annual ridership where published, which is rare: 80 of the 961 rows carry one |
| countries_iso / countries | string | \|-separated, in travel order (CSV); structured objects in JSON |
| highlight | string | One-line description of what makes the route legendary |
| fame_rank | number | 1 = most famous (the atlas's own renown ranking) |
| url | string | The route's page. These were written before the rename and still read trainrouter.com, which redirects to the same path on worldtrainmap.com; they will be rewritten in the next release |