SL olika stationskoder / SITE IDs

Hej - Jag blir inte riktigt klok på vilka koder jag skall anvönda mig av och hur jag kan få fram vilken site som har vilken kod. Jag skall bara använda mig av SLs egen trafik. Bussar, Tunnelbana, Pendel, Spårvagnar och Färjor/Båtar. Alltså bara SL's

hur kan jag på enklast möjliga sett hitta så att jag får rätt kod till alla stationer på detta.
ibland verkar koden kunna se ut som "9192" och ibland det längre "9022001012009002"
Även om jag laddat ner alla koder med detta utseendet så är det ett fåtal som ger svar vi anrop på "departures from site". Odenplan t.ex lär ha "10806" resp Stockholm oden plan "5321". Båda dessa borde precis som "9192" fungera och ge resultat. men icke...
I ärlighetens namn vet jag inte om jag gör rätt. eller söker på rätt kod...Så vad kan / skall jag förvänta mig och hur skall jag göra för att kunna skapa en lista.

Vänligen hör av er asap om ni kan
Stefan Eng

Kommentarer

  • Hej Stefan,

    Detta beror på vad det är för objekt som identifieras samt vilket API som används.
    SLs hållplatsstruktur består av 3 lager:

    - Sites: Ett område som innehåller flera hållplatser. Till exempel Slussen (T-bana + buss), Sundbyberg (Tunnelbana + pendeltåg + buss) eller Solna (Pendeltåg + buss + spårvagn).
    - StopAreas: En hållplats, typiskt för 1 trafikslag.
    - StopPoints: Ett hållplatsläge (busstolpe / plattform till tåg)

    Sites identifieras med ett id, som antingen är i form av 9192 eller 300109192 för slussen. Om det är den korta eller långa varianten beror tyvärr på vilket API man använder. Det är här konverteringen enligt 3BA1CDEFG / ABCDEFG kommer in. Slussen blir 0009192 (DEFG=9192) som då blir 300109192.

    Vi har granskat lite mer nu när allt är stabilt. Konverterar man långt till kort så kapas de första två siffror, så 302101661 blir 01661. I praktiken så finns det inga 6 eller 7-siffriga site-ids än, så man kan istället konvertera enligt 3001ABCDE där ABCDE är site-id med extra ledande nollor vid behov. Det är alltså bara att lägga till eller ta bort 3001 framför korta id:et, där det korta id-et ska fyllas på med nollor till vänstersidan så att långa varianten totalt blir 9-siffrigt. Vi kommer uppdatera dokumentationen efter detta.

    StopAreas och StopPoints har sina egna id:er som inte behövs lika ofta.

    ID:ar till alla sites finns här i transport-API:et, tillsammans med deras tillhörande StopAreas (finns med genom parametern expand=true): https://transport.integration.sl.se/v1/sites?expand=true.
    Alla StopAreas och StopPoints hittar man här: https://transport.integration.sl.se/v1/stop-points. De kan kopplas till sites baserat på site-id. Eftersom en StopArea kan innehålla flera StopPoints, och eftersom att varje StopPoint i det API-anropet inkluderar information om StopArea:n, kan en stop-area förekomma flera gånger. Baserat på StopArea kan man knyta ihop hållplatslägen som tillhör samma hållplats. StopArea och StopPoint används inte som parametrar i övriga API:er.

    Avgånger hämtas baserat på site-id i kort format, samma format som returneras från transport-API:et. Tex https://transport.integration.sl.se/v1/sites/9192/departures.

    Störningar filtreras baserat på site-id i kort format, tex:
    https://deviations.integration.sl.se/v1/messages?site=9192. Svaret innehåller även StopArea id:ar, som går att koppla till sites-anropet samt stoppoints-anropet som beskrevs högre upp.

    SL Platsuppslag returnerar site-id i långt format, alltså 3xx1xxxxx.
    SL Närliggande hållplatser returnerar site-id i långt format, alltså 3xx1xxx. Fältet heter mainMastExtId.
    SLs Reseplanerare använder site-id i långt format, alltså 3xx1xxxxx.

    Hoppas detta förtydligar lite.

    Hälsningar,
    Bert



    Bert på Trafiklab
  • Hej och stort tack för informationen. Jag uppskattar verkligen detta även om det fortfarande är knepigt att hänga med. Om jag testar på siten https://www.trafiklab.se/sv/api/trafiklab-apis/sl/transport/#/default/Departures (departures from site) så borde jag få fram resultat. Men jag får ingenting förutom när det gäller just slussen och 9192.

    Jag få svar på andra tunnelbanestationer 17029 till exempel Brommaplan. Koden är kort så det borde ge mig nästkommande tåg precis som det gör på Slussen - Men det är helt tomt. På lek provar jag långa koden som då borde vara 300117029 - Men det kommer inget då heller.

    I min applikation har jag prövat flera oliks atstioner med logiken
    3001+12345
    3001+0+1234
    3001+00+123
    Men jag lyckas bara få svar från den korta koden 9192 dvs slussen. :-D

    Jag är alltså bara intresserad av frågan När går de närmaste nästa bussarna / tågen / tunnelbanan / spårtrafiken från station X.

    Men jag är envis och jag hoppas ni inte tröttnar på mig innan jag luskat ut hur det funkar.
    :-D

    Hör av er när ni kan...
    Stefan Eng
  • Hej Stefan,

    Om du vill leta avgångar från en hållplats är det den korta koden som ska användas.
    De hittar du här: https://transport.integration.sl.se/v1/sites?expand=true , där brommaplan har site id 9109.

    {
    "id": 9109,
    "gid": 9091001000009109,
    "name": "Brommaplan",
    "abbreviation": "BMP",
    "lat": 59.3382959612222,
    "lon": 17.9378670110751,
    "valid": {
    "from": "2012-06-23T00:00:00"
    }
    },

    Avgångar hittar du då här:
    https://transport.integration.sl.se/v1/sites/9109/departures

    Alternativt kan Site-id letas upp i SL Platsuppslag, där man får bland annat denna site:

    <Site>
    <Name>Brommaplan (Stockholm)</Name>
    <SiteId>300109109</SiteId>
    <Type>Station</Type>
    <X>17937867</X>
    <Y>59338298</Y>
    </Site>

    Här konverteras 300109109 då till 9109, som går att använda i avgångs-API:et.

    Använder man närliggande hållplatser får man detta svar när man söker på brommaplans koordinater. Samma hållplats förekommer flera gånger eftersom varje ingång till stationen har olika koordinater.

    <LocationList serverVersion="1.4" dialectVersion="1.23">
    <StopLocation id="A=1@O=Brommaplan@X=17937822@Y=59338361@u=7@U=74@L=400115339@" extId="400115339" name="Brommaplan" hasMainMast="true" mainMastId="A=1@O=Brommaplan (Stockholm)@X=17937867@Y=59338298@U=74@L=300109109@" mainMastExtId="300109109" lon="17.937822" lat="59.338361" weight="6013" products="10" dist="7"/>
    <StopLocation id="A=1@O=Brommaplan@X=17937885@Y=59338397@u=11@U=74@L=400115302@" extId="400115302" name="Brommaplan" hasMainMast="true" mainMastId="A=1@O=Brommaplan (Stockholm)@X=17937867@Y=59338298@U=74@L=300109109@" mainMastExtId="300109109" lon="17.937885" lat="59.338397" weight="6013" products="10" dist="11"/>
    <StopLocation id="A=1@O=Brommaplan@X=17937840@Y=59338424@u=14@U=74@L=400112218@" extId="400112218" name="Brommaplan" hasMainMast="true" mainMastId="A=1@O=Brommaplan (Stockholm)@X=17937867@Y=59338298@U=74@L=300109109@" mainMastExtId="300109109" lon="17.93784" lat="59.338424" weight="6013" products="10" dist="14"/>
    <StopLocation id="A=1@O=Brommaplan@X=17937651@Y=59338442@u=20@U=74@L=400115701@" extId="400115701" name="Brommaplan" hasMainMast="true" mainMastId="A=1@O=Brommaplan (Stockholm)@X=17937867@Y=59338298@U=74@L=300109109@" mainMastExtId="300109109" lon="17.937651" lat="59.338442" weight="6013" products="10" dist="20"/>
    <StopLocation id="A=1@O=Brommaplan@X=17937534@Y=59338208@u=21@U=74@L=400115301@" extId="400115301" name="Brommaplan" hasMainMast="true" mainMastId="A=1@O=Brommaplan (Stockholm)@X=17937867@Y=59338298@U=74@L=300109109@" mainMastExtId="300109109" lon="17.937534" lat="59.338208" weight="6013" products="10" dist="21"/>
    <StopLocation id="A=1@O=Brommaplan@X=17937210@Y=59338217@u=38@U=74@L=400115801@" extId="400115801" name="Brommaplan" hasMainMast="true" mainMastId="A=1@O=Brommaplan (Stockholm)@X=17937867@Y=59338298@U=74@L=300109109@" mainMastExtId="300109109" lon="17.93721" lat="59.338217" weight="6013" products="10" dist="38"/>
    <StopLocation id="A=1@O=Brommaplan@X=17937444@Y=59338595@u=40@U=74@L=400112251@" extId="400112251" name="Brommaplan" hasMainMast="true" mainMastId="A=1@O=Brommaplan (Stockholm)@X=17937867@Y=59338298@U=74@L=300109109@" mainMastExtId="300109109" lon="17.937444" lat="59.338595" weight="6013" products="10" dist="40"/>
    <StopLocation id="A=1@O=Brommaplan@X=17937120@Y=59338433@u=44@U=74@L=400112567@" extId="400112567" name="Brommaplan" hasMainMast="true" mainMastId="A=1@O=Brommaplan (Stockholm)@X=17937867@Y=59338298@U=74@L=300109109@" mainMastExtId="300109109" lon="17.93712" lat="59.338433" weight="6013" products="10" dist="44"/>
    <StopLocation id="A=1@O=Brommaplan@X=17937741@Y=59338712@u=46@U=74@L=400112217@" extId="400112217" name="Brommaplan" hasMainMast="true" mainMastId="A=1@O=Brommaplan (Stockholm)@X=17937867@Y=59338298@U=74@L=300109109@" mainMastExtId="300109109" lon="17.937741" lat="59.338712" weight="6013" products="10" dist="46"/>
    </LocationList>

    Här är mainMastExtId 300109109, som konverteras till 9109 för användning i avgångs-API:et.

    Hoppas detta förtydligar hur man kombinerar API:erna i just detta syfte.

    Hälsningar,
    Bert




    Bert på Trafiklab
  • Hej Igen
    Om jag enligt vad ni skrev senast prövar nedan för att lista alla sites;

    "Om du vill leta avgångar från en hållplats är det den korta koden som ska användas.
    De hittar du här: https://transport.integration.sl.se/v1/sites?expand=true , där brommaplan har site id 9109."

    Så får jag visserligen en massa stationer - men mest båthållplatser. Jag saknar helt tunnelbane-, pendel, och busstationer vad jag kan se (några busshållplatser finns nog med.)

    Så hur gör jag för att ta ut en lista med Site ID'n på alla hållplatser för
    Tunnelbanan
    Pendeltågen
    Bussarna
    Spårtrafiken

    Enligt logiken så borde jag få alla när jag använder ovan anrop. men långtifrån allt finns med.
    Och tyvärr kan jag alltså inte testa detta på sidan då den felar (om jag kör execute eller "try it out" på den här sidan... https://www.trafiklab.se/sv/api/trafiklab-apis/sl/transport/#/default/Sites)

    Går det att hjälpa mig mer eller ?
    Stefan Eng
  • Hej Stefan,
    Har du något exempel på en station som saknas när du gör anropet till https://transport.integration.sl.se/v1/sites?expand=true ? Det du ska få är en lista på alla hållplatser (sites) som SL trafikerar och jag får t ex ut 6467 stycken vilket ser korrekt ut. Får du lika många? Annars kan det vara något problem med din webbläsare.

    Om du är intresserad av Brommaplan så måste du leta upp Brommaplan i listan, den har ID 9109 och sen finns det 3 stycken stop areas kopplade till Brommaplan. Stop areas med id 1231, 12217 samt 15339 (se bild nedan).



    Om du sedan vill ha mer information får du anropa https://transport.integration.sl.se/v1/stop-points

    Där kan du söka upp vilka hållplatslägen som t ex är kopplade till stop area med id 1231. Nedan kan du se att jag hittade 2st hållplatslägen (2 plattformar) som tillhör stop area 1231. Och där stop arean är en tunnelbanestation (METROSTN)




    Hoppas det hjälper dig framåt!

    Mvh
    Sofie

    Sofie på Trafiklab

Kommentera eller skriv ett nytt inlägg

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