Hämta delar av GTFS static

Hej, jag håller på med en egen SL app som jag möjligtvis tänkt släppa. Jag har precis implementerat livepositioner för fordon med hjälp av GTFS realtime. Jag har listat ut att jag behöver använda mig utav GTFS SL static routes.txt och trips.txt för att kunna länka fordonen till legs jag får av SL route planner.
Eftersom hela datasettet är ca 300mb (60mb komprimerat) så kan jag inte ladda ner detta per enhet varje gång det uppdateras. Hur ska jag gå till väga här? Måste jag bygga en egen proxy server som ger ut den information som behövs eller kan jag på något sätt filtrera er API så appen endast behöver hämta de filer jag behöver, dvs routes.txt & trips.txt?

Tack!
Frej

Kommentarer

  • Hej Frej,

    Det stämmer att man måste ha ett eget litet proxy-API emellan GTFS-datasettet och mobilappen. Där kan man även knyta ihop realtidsflöden med statiska datat så att man kan skicka exakt den informationen som behövs på telefonen till appen. En användare behöver tex inte få alla positioner på alla bussar varannan sekund, utan bara de positioner för bussar i ett visst område.

    Även om man skulle kunna hämta GTFS direkt till mobiltelefonen gör skillnaden i telefonens CPU-hastigheter att det troligen blir svårt att få en konsistent bra användarupplevelse när såpass mycket data ska hanteras.

    Hälsningar,
    Bert
    Bert på Trafiklab
  • Tack för svar!
    Spenderade gårdagen med att sätta upp en egen API proxy server som hanterar just detta som du säger. Nu visas platserna i appen!
    Däremot har det dykt upp en till fråga, sättet jag löste det på igår är att jag skickar en request till min server, där jag inkluderar linjenumret (lines=13). Servern matchar sedan ihop linjerna med route_id (ur routes.txt) och ger sedan tillbaks alla vehicles med ett trip_id som är bundet till route_id:t (ur trips.txt). Oklart om detta är rätt sätt att göra det på?
    Jag försöker nu filtrera lite mer för att endast ge tillbaks "vehicles" som går i rätt riktning, förmodligen med hjälp av direction_id (i trips.txt), men hur avgör jag vilket direction_id som är det jag söker? Använder mig av SL route planner men hittar inget sådant där?
    Enligt dokumentationen för direction_id: "Valid options are: 0 - Travel in one direction (e.g. outbound travel). 1 - Travel in the opposite direction (e.g. inbound travel)." - men outbound & inbound från vad?

    Mvh
    Frej
    Frej
  • Hej Frej,

    Det låter rätt. Angående direction_id har fältet själv ingen betydelse, och beror det på operatören som levererar data hur fältet ska tolkas. Till exempel kan det vara att det tilldelas baserat på norrgående/södergående linjer, men som sagt beror detta på operatör.

    Det som du istället skulle kunna göra är att använda dig av trip_headsign, alternativt stop_headsign i stop_times.txt, för att urskilja destinationer. Du skulle även kunna kolla på sluthållplatsen enligt stop_times.

    Hälsningar,
    Bert
    Bert på Trafiklab

Kommentera eller skriv ett nytt inlägg

Ditt namn och inlägg kan ses av alla. Din e-post visas aldrig publikt.