Hopp til innhold

AtBeta

Åpne data og AtB

AtB undergår en massiv endring, foreløpig synliggjort av en ny reiseassistent-pilot. Dette er bare toppen av et aldri så lite transformasjonsisfjell. Under overflaten ligger det en organisasjonsendring, nye nasjonale samarbeid og ny dataflyt. Det betyr mye, men ikke minst at nå vil hvem som helst kunne hente ut reiseinformasjon i Trøndelag via åpne API-er!

Som en del av endringene går AtB nå over til å sende all ruteinformasjon, sanntidsdata og informasjon om holdeplasser til det nasjonale registeret Entur. Fra Entur sine API-er er det mulig å hente ut reiseforslag med flere typer reisemetoder, oversikt over holdeplasser, sanntidsinformasjon eller hente ut ruteinformasjon. Entur baserer seg blant annet på GraphQL og REST-endepunkter og all data er lisensiert under NLOD (Norsk lisens for offentlige data). Dette betyr at du kan lage dine egne løsninger i dag som baserer seg på AtBs reiser. Det betyr også at data fra AtB kommer inn til Googles tjenester (etter noe underliggende bug-fiksing) eller at du kan bruke Entur sin app. Foreløpig er det kun for reiseplanlegging og ruteinformasjon, men på sikt kommer det også billetter og reiserettigheter inn. Vi sikter oss inn på en lukket pilot denne uken, etterfulgt av åpen pilot tidlig neste år.

Det er et hav av muligheter nå som AtB får åpen data. Vi er spente på å se hvordan data kan bli brukt til å bedre hverdagen til alle oss i Trøndelag.

Eksempler på åpen data

For komplett oversikt over hvordan du kan bruke de åpne API-ene til Entur kan du se dokumentasjonen, men her kommer noen eksempler på du kan gjøre.

Reiseforslag mellom to koordinater

# Query
{
  trip(
    from: {
      coordinates: {
        latitude: 63.431175624554115
        longitude: 10.392306718276577
      }
      name: "Prinsens gate 39"
    }
    to: {
      coordinates: { latitude: 63.391906000000006, longitude: 10.4867709 }
      name: "Estenstaddammen, Trondheim"
    }
    numTripPatterns: 1
  ) {
    tripPatterns {
      expectedEndTime
      duration
      walkDistance
      legs {
        mode
        line {
          publicCode
          name
        }
      }
    }
  }
}
# Result
{
  "data": {
    "trip": {
      "tripPatterns": [
        {
          "expectedEndTime": "2020-11-16T23:31:38+0100",
          "duration": 3643,
          "walkDistance": 1916.8230769373117,
          "legs": [
            {
              "mode": "foot",
              "line": null
            },
            {
              "mode": "bus",
              "line": {
                "publicCode": "10",
                "name": "Sæterbakken- Strindheim- Sentrum- Ratesvingen"
              }
            },
            {
              "mode": "foot",
              "line": null
            }
          ]
        }
      ]
    }
  }
}

Holdeplasser og plattformer rundt et sted

Se kjørende eksempel i GraphQL IDE-en til Entur.

# Quays near Prinsens gate 39
{
  quaysByRadius(
    latitude: 63.431175624554115
    longitude: 10.392306718276577
    radius: 150
  ) {
    edges {
      node {
        quay {
          name
        }
      }
    }
  }
}
# Data
{
  "data": {
    "quaysByRadius": {
      "edges": [
        {
          "node": {
            "quay": {
              "name": "Prinsens gate"
            }
          }
        },
        {
          "node": {
            "quay": {
              "name": "Dronningens gate"
            }
          }
        },
        {
          "node": {
            "quay": {
              "name": "Dronningens gate"
            }
          }
        },
        {
          "node": {
            "quay": {
              "name": "Dronningens gate"
            }
          }
        },
        {
          "node": {
            "quay": {
              "name": "Prinsens gate"
            }
          }
        }
      ]
    }
  }
}

Søk etter steder

GET https://api.entur.io/geocoder/v1/autocomplete?text=Prinsens%20Gate
# Data
{
  "features": [
    {
      "type": "Feature",
      "geometry": {
        "type": "Point",
        "coordinates": [10.392007, 63.431034]
      },
      "properties": {
        "id": "NSR:StopPlace:41613",
        "gid": "whosonfirst:venue:NSR:StopPlace:41613",
        "layer": "venue",
        "source": "whosonfirst",
        "source_id": "NSR:StopPlace:41613",
        "name": "Prinsens gate",
        "street": "NOT_AN_ADDRESS-NSR:StopPlace:41613",
        "accuracy": "point",
        "country_a": "NOR",
        "county": "Trøndelag",
        "county_gid": "whosonfirst:county:KVE:TopographicPlace:50",
        "locality": "Trondheim",
        "locality_gid": "whosonfirst:locality:KVE:TopographicPlace:5001",
        "label": "Prinsens gate, Trondheim",
        "category": ["onstreetBus"],
        "tariff_zones": ["MOR:TariffZone:922", "ATB:TariffZone:1"]
      }
    }
    ///...
  ]
}