johannwagner / insa-hafas

JavaScript client for the NASA/INSA HAFAS API.

Home Page:https://github.com/derhuerst/insa-hafas#insa-hafas

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

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. Its docs document the API in general.

npm version dependency status ISC-licensed chat on gitter support me on Patreon

Installing

npm install insa-hafas

API

Check the docs for hafas-client as well as its INSA-specific customisations.

Getting Started

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.0.1 format:

[ {
	type: 'journey',
	// taken from the first leg
	origin: {
		type: 'station',
		id: '8010226',
		name: 'Magdeburg-Neustadt',
		location: { /* … */ },
		products: { /* … */ }
	},
	departure: '2018-03-14T03:01:00.000+01:00',
	// taken from the last leg
	destination: {
		type: 'station',
		id: '8013456',
		name: 'Magdeburg-Buckau',
		location: { /* … */ },
		products: { /* … */ }
	},
	arrival: '2018-03-14T03:40:00.000+01:00',
	legs: [
		{
			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',
			destination: {
				type: 'station',
				id: '7368',
				name: 'Magdeburg, S-Bahnhof Neustadt (Tram)',
				location: { /* … */ },
				products: { /* … */ }
			},
			arrival: '2018-03-14T03:06:00.000+01:00',
			mode: 'walking',
			public: true
		}, {
			id: '1|86821|1|80|14032018',
			origin: {
				type: 'station',
				id: '7368',
				name: 'Magdeburg, S-Bahnhof Neustadt (Tram)',
				location: { /* … */ },
				products: { /* … */ }
			},
			departure: '2018-03-14T03:06:00.000+01:00',
			destination: {
				type: 'station',
				id: '7333',
				name: 'Magdeburg, Alter Markt',
				location: { /* … */ },
				products: { /* … */ }
			},
			arrival: '2018-03-14T03:12:00.000+01:00',
			line: {
				type: 'line',
				id: 'n8',
				name: 'N8',
				public: true,
				product: 'tram',
				mode: 'train',
				operator: {
					type: 'operator',
					id: 'magdeburger-verkehrsbetriebe',
					name: 'Magdeburger Verkehrsbetriebe'
				},
				class: 32,
				productCode: 5
			},
			direction: 'Alter Markt',
			alternatives: [
				{
					line: {
						type: 'line',
						id: 'str-n8',
						name: 'Str N8',
						public: true,
						product: 'tram',
						mode: 'train',
						class: 32
					},
					when: '2018-03-14T04:06:00.000+01:00'
				},
				// …
			]
		}
		// …
	]
} ]

Similar Projects

Contributing

If you have a question, found a bug or want to propose a feature, have a look at the issues page.

About

JavaScript client for the NASA/INSA HAFAS API.

https://github.com/derhuerst/insa-hafas#insa-hafas

License:ISC License


Languages

Language:JavaScript 100.0%