|
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118 |
- # 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)
- [![build status](https://img.shields.io/travis/derhuerst/vbb-stations.svg)](https://travis-ci.org/derhuerst/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: '900000009101',
- name: 'U Amrumer Str.',
- location: {
- type: 'location',
- latitude: 52.542202,
- longitude: 13.349534
- },
- weight: 3563
- }
- ]
- ```
-
- 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('900000009101')) // query a single station
- console.log(stations({ // filter by property
- weight: 3563,
- 'location.latitude': 52.542202
- }))
- ```
-
- `full.json` contains all stops of each station and unshortened names.
-
- ```js
- require('vbb-stations/full.json')['900000009101']
- ```
-
- One entry looks like this:
-
- ```js
- {
- type: 'station',
- id: '900000009101',
- name: 'U Amrumer Str. (Berlin)',
- location: {
- type: 'location',
- latitude: 52.542202,
- longitude: 13.349534
- },
- weight: 3284.25,
- stops: [
- {
- type: 'stop',
- id: '070101000865',
- name: 'U Amrumer Str. (Berlin)',
- station: '900000009101',
- location: {
- type: 'location',
- latitude: 52.542202,
- longitude: 13.349534
- }
- },
- // …
- {
- type: 'stop',
- id: '070201092402',
- name: 'U Amrumer Str. (Berlin)',
- station: '900000009101',
- location: {
- type: 'location',
- latitude: 52.542202,
- longitude: 13.349534
- }
- }
- ]
- }
- ```
-
- `names.json` contains only shortened names.
-
- ```js
- require('vbb-stations/names.json')['900000009101'] // U Amrumer Str.
- ```
-
-
- ## API
-
- `stations([pattern])`
-
- `pattern` can be one of the following:
-
- - a station ID, like `900000009101`
- - `'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).
|