vbb-stations

A list of VBB stations.

Usage no npm install needed!

<script type="module">
  import vbbStations from 'https://cdn.skypack.dev/vbb-stations';
</script>

README

vbb-stations 🚏

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

npm version build status 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: '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 will be used).

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.

require('vbb-stations/full.json')['900000009101']

One entry looks like this:

{
    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.

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.