Till senaste kommentaren

SL Närliggande hållplatser - flera uppslag i samma anrop

Hej! Jag har byggt ett skript som listar alla bussar på en viss linje, med position, hastighet, etc.. För varje fordon slår jag också upp närmaste hållplats via "Närliggande hållplatser"-APIt. Om jag vill lista 10 st bussar, blir det också 10 st anrop till "Närliggande hållplatser"... Jag vet inte om det är ett udda case, men i mitt fall skulle det vara smidigt att kunna skicka över ex.vis 10 st positioner i ett anrop (POSTa en JSON?), och få tillbaks svar för alla 10 på en gång. Stod att det var nytt API på gång för denna funktion, så kanske detta kan erbjudas i det nya APIt..? (Eller så ska jag lära mig "parallell programmering" och skjuta iväg 10 anrop samtidigt.. 😀 )
Lars Lengberg

Kommentarer

  • Hej Lars,

    För dessa applikationer hänvisar vi gärna till "SL - hållplatser och linjer" som gör det möjligt att hämta alla hållplatser i en anrop. Då kan du leta upp vilka som ligger närmst till varje buss, och behövs det bara en anrop om dagen.

    Alternativt kan du kolla på GTFS Regional och GTFS Regional Realtid.

    Hälsningar,
    Bert
    Bert på Trafiklab
  • Tack för svar... Det jag är ute efter är att ta en position (59.12345.. / 18.98765..) och få veta vilken som är närmaste hållplats ("Timotejvägen" eller nåt). Exakt det som närliggande hållplatser-API:t gör. Eftersom jag behöver kolla upp kanske 10 positioner samtidigt var min tanke att jag kunde "batcha" detta - fråga om 10 st X/Y i ett anrop. Kanske blev resurseffektivare i er ände också med ett anrop istället för 10?

    Nåväl, jag inser att jag ska läsa på lite om Pythons multitrådning och därmed kunna göra anropen parallellt från mitt håll - borde lösa mitt problem i alla fall! 😀

    (Så får vi se vad som kommer i SLs "new, similar API in the near future"..)
    Lars Lengberg
  • Hej Lars,

    Om du laddar ner alla hållplatser en gång, så kan du ta bussens koordinater (eller 10 eller 100 bussars koordinater) och beräkna avståndet till varje hållplats. När man inte behöver en exakt avstånd, men bara vill veta vilken som ligger närmast, kan man använda sig av Pythagoras. Räkna ihop kvadraten av skillnaden i longituden med kvadraten av skillnaden i latituden, och spara denna summa för varje hållplats. Hållplatsen som har minsta summan ligger närmast bussen. Detta är mycket mer resurseffektivt än att skicka många anrop till servern, eftersom att servern gör exakt samma sak, fast där får du tävla om resurser med andra användaren, samt kommer det latency till.

    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.