Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/derhuerst/vbb-stations
A list of VBB stations.
https://github.com/derhuerst/vbb-stations
berlin bvg public-transport transit transport vbb
Last synced: 5 days ago
JSON representation
A list of VBB stations.
- Host: GitHub
- URL: https://github.com/derhuerst/vbb-stations
- Owner: derhuerst
- License: isc
- Created: 2016-04-02T19:24:23.000Z (over 8 years ago)
- Default Branch: master
- Last Pushed: 2024-09-20T16:17:37.000Z (about 2 months ago)
- Last Synced: 2024-10-10T18:18:17.081Z (about 1 month ago)
- Topics: berlin, bvg, public-transport, transit, transport, vbb
- Language: JavaScript
- Homepage: https://github.com/derhuerst/vbb-stations
- Size: 359 KB
- Stars: 9
- Watchers: 3
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: readme.md
- License: license.md
Awesome Lists containing this project
README
# vbb-stations 🚏
A **collection of all stations of the [Berlin Brandenburg public transport service (VBB)](http://www.vbb.de/)**, computed from [open](https://daten.berlin.de/datensaetze/vbb-fahrplandaten-gtfs) [GTFS](https://developers.google.com/transit/gtfs/) [data](https://vbb-gtfs.jannisr.de/).
[![npm version](https://img.shields.io/npm/v/vbb-stations.svg)](https://www.npmjs.com/package/vbb-stations)
![ISC-licensed](https://img.shields.io/github/license/derhuerst/vbb-stations.svg)
[![support me via GitHub Sponsors](https://img.shields.io/badge/support%20me-donate-fa7664.svg)](https://github.com/sponsors/derhuerst)
[![chat with me on Twitter](https://img.shields.io/badge/chat%20with%20me-on%20Twitter-1da1f2.svg)](https://twitter.com/derhuerst)## Installing
```shell
npm install vbb-stations
```## Usage
The [npm package](https://npmjs.com/vbb-stations) contains [*Friendly Public Transport Format* 1.2.1](https://github.com/public-transport/friendly-public-transport-format/blob/1.2.1/spec/readme.md) `station`s and `stop`s. `weight` is the sum of all arrivals & departures at a station, weighted by mode of transport.
```js
[
{
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`](https://lodash.com/docs/#get) will be used).
```js
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.
```js
require('vbb-stations/full.json')['de:11000:900009101']
```One entry looks like this:
```js
{
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.
```js
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](https://github.com/derhuerst/vbb-stations/issues).