Om SL Live Map

Vad det här är, och hur det fungerar

Texten börjar brett och blir gradvis mer teknisk. Första delen räcker om du bara är nyfiken. Sista delen är för dig som vill veta exakt hur det är byggt.

Vad är det här?

SL Live Map visar var Stockholms kollektivtrafik befinner sig just nu. Bussar, tunnelbana, pendeltåg, spårvagnar och båtar rör sig över kartan i realtid. Under rusningstid syns runt tusen fordon samtidigt.

Kartan uppdateras varannan sekund. Klickar du på ett fordon ser du vilken linje det är, vart det är på väg och hur fort det kör.

Hur började det?

Det började med en enkel fråga: skulle man kunna bygga en webbsida som visar lokaltrafiken i Stockholm live på en karta?

Det visade sig att Trafiklab publicerar GPS-positioner för alla SL-fordon som öppen data. En Python-server som hämtar flödet, en HTML-sida med en Leaflet-karta, och färgade prickar som visar var fordonen är — det var den första versionen. Den gick live på måndag kväll den 16 februari 2026.

Sedan dess har det blivit linjefärger för tunnelbana och pendeltåg, stationsmarkeringar och linjesträckningar från Trafiklabs GTFS-data, och en popup som visar vart fordonet är på väg.

Varifrån kommer datan?

Positionerna kommer från Trafiklab, som publicerar öppen kollektivtrafikdata i Sverige. SL:s fordon rapporterar sin GPS-position löpande, och den datan skickas vidare som ett öppet GTFS-flöde som vem som helst kan använda.

Linjernas sträckningar och stationernas placeringar kommer också från GTFS Regional Static, samma datakälla som SL:s egen reseplanerare använder.

Karta över Stockholms spårtrafik med tunnelbana, pendeltåg och spårvagn

Lite siffror

Servern hämtar nya positioner från Trafiklab varannan sekund, dygnet runt. Det blir ungefär 43 000 anrop per dygn, och varje svar innehåller positioner för alla fordon som är i trafik. Totalt passerar runt 40 miljoner fordonspositioner genom systemet varje dag.

...
besökare sedan start
...
snittbesök
...
sidvisningar

Vad syns på kartan?

Varje fordon visas som en färgad prick med linjenumret i. Färgen visar vilken typ det är:

TypFärgLinjer
Bussar SL-röd ~100 linjer
Tunnelbana Linjens färg 3 linjer (7 grenar)
Pendeltåg Linjens färg 4 linjer
Spårväg Linjens färg 10 linjer
Båtar Cyan ~20 linjer

Bussar visas först när du zoomar in tillräckligt, annars skulle kartan bli oläsbar. Tunnelbana, pendeltåg, spårväg och båtar syns alltid.

Varför saknas en del fordon?

Fordon som inte rapporterar sin position via GPS syns inte. Det gäller till exempel fordon som står i depå eller som har problem med GPS-utrustningen. Fordon utan linjeinformation filtreras också bort, eftersom det inte går att avgöra om de är i trafik.

Arkitektur

Hela sajten är medvetet enkel. En Python-server, en HTML-fil med inbäddad JavaScript, inga ramverk, ingen databas.

Servern är tillståndslös. Det finns inget att logga in på och inga sessioner. All data som servern håller i minnet är en cache av det senaste API-svaret och en uppslagstabell för linjeinformation.

Datakällor

KällaVadAnropas
GTFS-RT Fordonspositioner i realtid Var 2:a sekund
GTFS Static Linjer, stationer, spårsträckningar Offline, vid bygge
SL Transport API Linjeinformation Cachad 1 timme

Uppslagstabellen

GTFS-flödet ger bara ett tur-ID per fordon, inte vilken linje det kör eller vart det är på väg. Den informationen finns i trip_lookup.json, en förbyggd fil på 3,4 MB som mappar 95 000 tur-ID:n till linjenummer, trafikslag och slutdestination. Filen byggs om när SL uppdaterar sin statiska data, ungefär en gång i månaden.

Teknikstack

KomponentTeknik
Server Python, Flask, Gunicorn
KlientVanilla HTML, CSS, JavaScript
Karta Leaflet 1.9
Kartbilder CartoDB Dark Matter
Webbserver Nginx (cache + proxy)
Drift Hetzner Cloud, Ubuntu 24.04

Tack!

Ett stort tack till alla som har skickat kärlek och hört av sig. Jag är ärligt talat rörd och lite förvånad över det stora intresset. Det värmer verkligen.

Har du en tanke, en hälsning eller bara vill säga hej? Skriv gärna en rad här nedan.