Skip to content

derhuerst/vbb-stations

Repository files navigation

vbb-stations 🚏

A collection of all stations of the Berlin Brandenburg public transport service (VBB), computed from open GTFS data.

npm version ISC-licensed support me via GitHub Sponsors chat with me on Twitter

Installing

npm install vbb-stations

Usage

The npm package contains Friendly Public Transport Format 1.2.1 stations and stops. weight is the sum of all arrivals & departures at a station, weighted by mode of transport.

[
	{
		type: 'station',
		id: 'de:11000:900009101',
		name: 'U Amrumer Str.',
		location: {
			type: 'location',
			latitude: 52.542202,
			longitude: 13.349534
		},
		weight: 2474,
	}
]

You can filter all stations by id or any property (lodash.get will be used).

const stations = require('vbb-stations')

console.log(stations('de:11000:900009101')) // query a single station
console.log(stations({ // filter by property
	weight: 2474,
	'location.latitude': 52.542202
}))

full.json contains all stops of each station and unshortened names.

require('vbb-stations/full.json')['de:11000:900009101']

One entry looks like this:

{
	type: 'station',
	id: 'de:11000:900009101',
	name: 'U Amrumer Str. (Berlin)',
	location: {
		type: 'location',
		latitude: 52.542202,
		longitude: 13.349534
	},
	weight: 2474,
	stops: [
		{
			type: 'stop',
			id: 'de:11000:900009101::1',
			name: 'U Amrumer Str. (Berlin)',
			station: 'de:11000:900009101',
			location: {
				type: 'location',
				latitude: 52.542202,
				longitude: 13.349534
			}
		},
		// …
		{
			type: 'stop',
			id: 'de:11000:900009101::2',
			name: 'U Amrumer Str. (Berlin)',
			station: 'de:11000:900009101',
			location: {
				type: 'location',
				latitude: 52.542202,
				longitude: 13.349534
			}
		}
	]
}

names.json contains only shortened names.

require('vbb-stations/names.json')['de:11000:900009101'] // U Amrumer Str.

API

stations([pattern])

pattern can be one of the following:

  • a station ID, like de:11000:900009101
  • 'all'
  • an object like {weight: 42, name: 'Alt Pinnow'}, with each property being mandatory

Contributing

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