Home

Awesome

vbb-shapes

Shapes of lines 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

Warning: This module contains JSON files with a total size of roughly 60mb.

npm install vbb-shapes

Usage

Let's assume you read trips from vbb-trips. Each trip has a shapeId associated.

const shapes = require('vbb-shapes')

shapes('1269')
.then(console.log)
[
	[52.48607, 13.4245],
	[52.48756, 13.42648],
	// …
	[52.5135, 13.52988],
	[52.51373, 13.52003]
]

You can also read all shapes from a readable stream in object mode, emitting one shape (as shown above) at once.

const allShapes = require('vbb-shapes/all')

allShapes()
.on('data', console.log)
.on('error', console.error)

GeoJSON encoded result

By adding the optional param formatAsLineString = true you'll receive a GeoJSON encoded result set.

const shapes = require('vbb-shapes')

shapes('1269', true)
.then(console.log)
{
    "type": "FeatureCollection",
    "features": [
        {
            "type": "Feature",
            "geometry": {
                "type": "LineString",
                "coordinates": [
                    [13.4245, 52.48607],
                    [13.42648, 52.48756],
                    // …
                    [13.52988, 52.5135],
                    [13.52003, 52.51373]
                ]
            },
            "properties": {}
        }
    ]
}

For all shapes:

const allShapes = require('vbb-shapes/all')

allShapes(true)
.on('data', console.log)
.on('error', console.error)

Contributing

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