Awesome
insa-hafas
A client for the public transport authority Nahverkehr Sachsen-Anhalt (NASA)/INSA. It acts as a consistent and straightforward interface on top of a verbose API.
This project is actually a thin wrapper around hafas-client@5
. Its docs document the API in general.
Installing
npm install insa-hafas
API
Check the docs for hafas-client@5
as well as its INSA-specific customisations.
Usage
const hafas = require('insa-hafas')
As an example, we will search for a route from Berlin Jungfernheide to München Hbf. To get the station IDs, use locations(query, [opt])
.
client.journeys('8011167', '8000261', {results: 1})
.then(({journeys}) => console.log(journeys[0]))
.catch(console.error)
The output will be an array of journey
objects in the Friendly Public Transport Format 1.2.1
format:
{
type: 'journey',
legs: [{
mode: 'walking',
public: true
origin: {
type: 'station',
id: '8010226',
name: 'Magdeburg-Neustadt',
location: {
type: 'location',
latitude: 52.148842,
longitude: 11.641705
},
products: {
nationalExp: true,
national: true,
regional: true,
suburban: true,
bus: true,
tram: true,
tourismTrain: true
}
},
departure: '2018-03-14T03:01:00.000+01:00',
plannedDeparture: '2018-03-14T03:01:00.000+01:00',
departureDelay: null,
destination: {
type: 'station',
id: '7368',
name: 'Magdeburg, S-Bahnhof Neustadt (Tram)',
location: { /* … */ },
products: { /* … */ }
},
arrival: '2018-03-14T03:06:00.000+01:00',
plannedArrival: '2018-03-14T03:06:00.000+01:00',
arrivalDelay: null,
}, {
tripId: '1|86821|1|80|14032018',
direction: 'Alter Markt',
line: {
type: 'line',
id: 'n8',
name: 'N8',
public: true,
product: 'tram',
mode: 'train',
operator: {
type: 'operator',
id: 'magdeburger-verkehrsbetriebe',
name: 'Magdeburger Verkehrsbetriebe'
}
},
origin: {
type: 'station',
id: '7368',
name: 'Magdeburg, S-Bahnhof Neustadt (Tram)',
location: { /* … */ },
products: { /* … */ }
},
departure: '2018-03-14T03:06:00.000+01:00',
plannedDeparture: '2018-03-14T03:05:00.000+01:00',
departureDelay: 60,
departurePlatform: null,
plannedDeparturePlatform: null,
destination: {
type: 'station',
id: '7333',
name: 'Magdeburg, Alter Markt',
location: { /* … */ },
products: { /* … */ }
},
arrival: '2018-03-14T03:12:00.000+01:00',
plannedArrival: '2018-03-14T03:12:00.000+01:00',
arrivalDelay: 0,
arrivalPlatform: '2a',
plannedArrivalPlatform: '1',
alternatives: [{
line: {
type: 'line',
id: 'str-n8',
name: 'Str N8',
public: true,
product: 'tram',
mode: 'train'
},
when: '2018-03-14T04:06:00.000+01:00'
}]
} /* … */ ]
}
Related
Check hafas-client
's related libs.
Contributing
If you have a question, found a bug or want to propose a feature, have a look at the issues page.