DEV Community

nickdenboer7-dev
nickdenboer7-dev

Posted on

OVspot – Live public transport map of the Netherlands

OVspot – Live public transport map of the Netherlands

I built OVspot, a live map of all public transport in the Netherlands: trains, buses, trams, metro and ferries on one map.

Technical stack:

  • Python/Flask backend with SQLite (3GB GTFS database)
  • ZeroMQ for KV6 live stream from all operators
  • Leaflet with DivIcon labels and smooth movement guards
  • International trains fully tracked: ICE, Eurostar, Nightjet, GoVolta, DB, NMBS beyond NL borders
  • Shape-distance interpolation for estimated positions without GPS
  • PWA with offline fallback

The biggest challenge was KV17 processing blocking the KV6 stream because the JSON file was fully rewritten on every update (18MB). Fixed with a debounce that writes to disk at most once per 5 seconds.

Source code for the KV6 collector and GTFS parser: https://github.com/nickdenboer7-dev/ovspot-collector

https://ovspot.nl

Happy to answer questions about the NDOV data infrastructure.

Top comments (0)