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.. 😀 )
Följ inlägget
0
följare
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
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"..)
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