On Monday, December 4, 2023, I wanted to ride a line in the Netherlands that I hadn’t yet, which is called the “MerwedeLingelijn” and goes between Dordrecht and Geldermalsen. In the NS journey planner database it’s called “Stoptrein” which distinguishes it from “Sprinter” and “Intercity”. Those names distinguish the service types on the Dutch railway network. (This particular Stoptrein is also a diesel-electric trainset.)

From Rotterdam, where I was staying, it would require at least one transfer to get to Gorinchem. But I wanted to stop in Utrecht to say hi to a friend during his work break – this meant there would be two transfers.

Here’s the itinerary I traveled on Monday

  • Rotterdam Centraal to Utrecht Centraal via Gouda, Intercity (half-hourly service) – 55 km
  • Utrecht Centraal to Geldermalsen, Sprinter (10-20 minute service) – 26 km
  • Geldermalsen to Gorinchem, Stoptrein (half-hourly service) – 27 km
  • [lunch and walk in Gorinchem, distance not recorded]
  • Gorinchem to Dordrecht, Stoptrein (quarter-hourly service) – 24 km
  • Dordrecht to Rotterdam, Waterbus (hourly service) – 21 km

How I drew the map

I wasn’t about to draw the routes by hand (although I did record the Waterbus ride on Strava as a “sail”) so I grabbed the data from OpenStreetMap.

If you want data in bulk from OpenStreetMap a common way to get it is from the HotOSM export tool. But I wanted specific transit routes, for which I could find the “way” IDs and export only those. For that I used Overpass Turbo and wrote the following query:

[out:json][timeout:25];
// gather results
rel(id:324888,13060594,5301520,2785504);
way(r);
// print results
out geom;

Notes

Frequencies refer to the pattern in the hour I used the service. The itinerary doesn’t include a Rotterdam Metro ride or the roundtrip bike ride from the Schiebroek neighborhood to Rotterdam Centraal).

Starting on December 10, the NS (Dutch national railway operator) is adding over 1,800 train services each week.