Välkommen till Trafiklab:s användare- och supportforum! Ställ frågor, rapportera problem och hjälp oss med förslag och idéer!
Vid felrapporter ber vi dig inkludera exakt API-namn och om möjligt ett exempelanrop för att underlätta felsökningen. Glöm inte att ta bort din API-nyckel när du delar ditt exempelanrop.
Undrar du hur du får tillgäng Trafiklabs data? Läs vår introduktion här: https://www.trafiklab.se/hur-gor-jag
Welcome to Trafiklab's user and supportforum. Ask questions, report issues and help us improve with suggestions and ideas!
If you open a new issue, please always include the exact API you're talking about, and, if applicable, include a sample request so we can check if contains the right parameters. Don't forget to remove your API keys when sharing example requests.
Välkommen till Trafiklab:s kund- och supportforum! Ställ frågor, rapportera problem och hjälp oss med förslag och idéer!
Protobuf används som dataformat för realtidsdata i GTFS-standarden, och används därför i GTFS Regional Realtime samt GTFS Sweden 3 Realtime. Detta för att formatet är kompakt och snabbt att läsa, något som blir viktigt vid dataströmmar med mycket data som uppdateras ofta (till exempel fordonspositioner som uppdateras varje sekund för vissa operatörer).
Det finns två sätt att gå tillvägs för att läsa protobuf data:
- Man använder en protobuf-bibliotek (som ger stöd för protobuf formatet själv) i kombination med en .proto fil som definierar strukturen som används i GTFS-standarden.
- Man använder en gtfs-realtime bibliotek, som gör samma sak som ovan, men där man redan har kombinerat protobuf-formatet och gtfs-strukturen till 1 bibliotek som är enklare att använda.
Hur man läser protobuf data i olika programmeringsspråk hittar man här, med exempel i olika språk som tex C++: https://protobuf.dev/overview/
Proto-filen för GTFS Realtime hittar man här: https://gtfs.org/documentation/realtime/gtfs-realtime.proto
Färdiga gtfs-realtime bibliotek för olika språk hittar du här: https://github.com/MobilityData/gtfs-realtime-bindings/tree/master
Det finns inga bibliotek specifik för Swift, eftersom realtidsdata måste kombineras med statisk data. Detta görs typiskt på en server, eftersom tex mobiltelefoner inte är lämpad för att hantera de stora statiska datamängder. Servern däremot kan kombinera realtidsdatat med det som behövs from det statiska data (tex linjenummer, transportmedel, nästa hållplats) och returnera den som JSON data till en front-end lösning (web, app, ...).
Hälsningar,
Bert
Hur jag sedan ska gå vidare vet jag inte.
Det finns inte någon ni vet som har implementerat det i någon iPhone-lösning?
Skånetrafiken har ju bussar i realtid så de kanske använder era API.
Dock vill de kanske inte dela information.
Skånetrafikens busspositioner finns i realtid, tillsammans med information om nyttjandegrad, hur trångt det är ombord på bussen.
Som jag skrev tidigare så brukar man inte hämta positioner direkt till en mobiltelefon, utan implementerar man en liten serverapplikation som tar hand om realtidsdata och tillgängliggör den i ett format som passar mobilappen, tex som JSON.
Kvota på nyckeln kommer antagligen inte räcka till för att förse alla användare av en mobilapplikation med realtidspositioner, vilket är en till anledning till att hämta all protobuf data till en server, där man kombinerar realtidsdata och statiskt data, cachar resultatet, och skickar vidare till mobilapplikationen.
Hälsningar,
Bert