Detta inlägg är gammalt och kan innehålla inaktuell information.

SiteId i nearbystopsv2

Hej, efter att ha hämtat närliggande stationer i nearbyStops, så vill jag hämta realtids data från realtimedepartures, men det finns inget siteId i nearbyStops så det blir svårt att hämta rätt data. Har ni några tips på hur jag kan gå till väga?

Kommentarer

  • Hej,

    Du kan använda "SL Hållplatser och linjer" för att få ut en lista med alla hållplatser, deras SiteId och koordinater. Då kan du hitta närliggande hållplatser lokalt enligt

    dLat = Lat1 - Lat2
    dLon = Lon1 - Lon2
    dist = dLat^2 + dLon^2

    Det ger dig en distans utan enhet som inte är 100% precis, men den är ett snabb sätt att hitta de som ligger närmast ("dist" är minst).

    Jag frågar våra kollegor hos SL om de har bättre förslag.

    Hälsningar,
    Bert
    Bert på Trafiklab
  • Okej, känns inte jätteoptimalt att behöva hämta en lista på alla stationer att behöva filtrera på, så om det finns ett bättre sätt så vore det toppen!
    Tobias
  • Märklig lösning på något som gick att göra friktionsfritt i API v1...

    Ta bort index 0 och 3 från `mainMastExtId` så får du siteId.

    ano
  • Ano, jag hade en liknande lösning först men det verkar inte alltid stämma.

    Jämför den här från hållplatser och linjer apit:
    {
    • "StopPointNumber": "962",
    • "StopPointName": "Ekudden",
    • "StopAreaNumber": "962",
    • "LocationNorthingCoordinate": "59.3899478093735",
    • "LocationEastingCoordinate": "18.0910639446710",
    • "ZoneShortName": "A",
    • "StopAreaTypeCode": "SHIPBER",
    • "LastModifiedUtcDateTime": "2020-01-01 00:00:00.000",
    • "ExistsFromDate": "2020-01-01 00:00:00.000"
    }


    Använder man dom koordinaterna på närliggande hållplatser får man det här:
    "StopLocation": {
    • "id": "A=1@O=Ekudden@X=18091061@Y=59389950@u=0@U=74@L=400100962@",
    • "extId": "400100962",
    • "hasMainMast": true,
    • "mainMastId": "A=1@O=Ekudden (Djursholm) (Danderyd)@X=18091061@Y=59389950@U=74@L=300100962@",
    • "mainMastExtId": "300100962",
    • "name": "Ekudden",
    • "lon": 18.091061,
    • "lat": 59.38995,
    • "weight": 7,
    • "dist": 0,
    • "products": 64
    }

    I det här fallet är det dom tre sista siffrorna i extId som gäller.
    Tobias
  • Fast min metod funkar i ditt exempel. 

    Tänkte du på en annan hållplats?
    ano

Kommentera eller skriv ett nytt inlägg

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