Om SL Live Map
Vad det här är, och hur det fungerar
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.
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.
Vad syns på kartan?
Varje fordon visas som en färgad prick med linjenumret i. Färgen visar vilken typ det är:
| Typ | Färg | Linjer |
|---|---|---|
| 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älla | Vad | Anropas |
|---|---|---|
| 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
| Komponent | Teknik |
|---|---|
| Server | Python, Flask, Gunicorn |
| Klient | Vanilla 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.