Tågpositioner och SSL i Tåg.Info:s API
Tåg.Info har sedan en tid tillbaks använt öppet tillgänglig data från Trafikverket för att räkna ut var varje tåg befinner sig, baserat på tågplan, tidtabell och förseningsinformation. Resultatet visas bland annat på www.tågkartan.se och i iPhone/iPad-appen Tågtavlan.
Det finns ingen GPS-information om Sveriges tågtrafik fritt tillgänglig, och därför har det varit svårt att bedöma korrektheten i de positioner som Tåg.Infos algoritm räknar fram. I och med releasen av SJ:s app "Min Resa" som har en liknande funktion har jag dock kunnat göra stickprovskontroller och jämfört positionerna som SJ:s app visar med dem i Tågtavlan, och än så länge är det förvånansvärt likt.
Jag tror inte detta beror på att Tåg.Info verkligen lyckas räkna fram tågens verkliga positioner, utan snarare att SJ inte heller använder "äkta" GPS-data i dagsläget utan istället visar vilken trafikplats tåget senast passerade. Att det kan ta 5-6 minuter innan positionerna uppdateras i SJs app tyder också på detta. Metoderna är i så fall alltså likartade, Tåg.Info uppdaterar dock positionerna varje minut genom att extrapolera från senast passerade trafikplats.
SJ har tillgång till GPS i sina modernare tåg, och man får anta att de i framtiden kommer börja sammanställa och visa denna information i sin app också.
Eftersom Tåg.Info:s tågpositioner visat sig stå sig ganska bra gentemot de positioner som SJ:s app visar så finns de hur som helst numera tillgängliga i tåg-API:et, som även kan nås över SSL (HTTPS).
Jag får emellanåt kritik för att jag inte delar ut API-nycklar hur som helst, utan ställer vissa enkla krav på motprestation och hur API:et används. Så här ser jag på saken:
Tåg.Info:s API är baserat på öppen offentlig data från Trafikverket, men den bearbetas och kompletteras med algoritmer som t.ex. beräknar ny förseningsinformation när sådan saknas i Trafikverkets data och ovan nämnda tågpositioner. Dessa algoritmer (och den data de producerar) är resultat av arbete som jag lägger ned mycket tid och energi på, och de förfinas och justeras ständigt. Att tillhandahålla ett API som är så flitigt använt som Tåg.Info:s kräver dessutom både resurser och löpande underhåll.
Skälet till att offentlig (dvs skattefinansierad) data börjar öppnas upp är inte att staten vill vara bussig. Genom att ge företag tillgång till offentlig data ger staten oss möjlighet att skapa tjänster och produkter baserade på denna data, som vi kan tjäna pengar på och därmed ge staten ökade skatteintäkter.
Syftet med öppen offentlig data är inte att vi som skapar derivat av denna data ska tvingas lämna ut resultatet av vårt arbete till utvecklare som vill att någon annan ska göras deras jobb. Alla gillar öppen data, men applåder betalar inga räkningar.
Missnöjd med Tåg.Info:s API-villkor? Datan som API:et bygger på finns öppet tillgänglig för alla. Sluta gnäll och lär dig programmera.
2011-10-01 20:58