Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/juliuste/svg-transit-map
Render an SVG transit map for a given transport network graph with position information.
https://github.com/juliuste/svg-transit-map
cli library public-transport
Last synced: 3 days ago
JSON representation
Render an SVG transit map for a given transport network graph with position information.
- Host: GitHub
- URL: https://github.com/juliuste/svg-transit-map
- Owner: juliuste
- License: isc
- Created: 2018-05-01T15:13:30.000Z (over 6 years ago)
- Default Branch: main
- Last Pushed: 2022-02-02T16:22:12.000Z (almost 3 years ago)
- Last Synced: 2024-10-31T22:03:37.811Z (8 days ago)
- Topics: cli, library, public-transport
- Language: JavaScript
- Homepage:
- Size: 24.4 KB
- Stars: 21
- Watchers: 5
- Forks: 1
- Open Issues: 1
-
Metadata Files:
- Readme: readme.md
- License: license
Awesome Lists containing this project
- awesome-starred - juliuste/svg-transit-map - Render an SVG transit map for a given transport network graph with position information. (library)
README
# svg-transit-map
Draw an SVG transit map for a given transport network graph with position information. Consumes data in the [JSON Graph Format](http://jsongraphformat.info), see [the usage section](#usage).
**This package only renders a given network as SVG. For automatic metro map drawing, see [`transit-map`](https://github.com/juliuste/transit-map).**
Code forked from [derhuerst/generate-vbb-transit-map](https://github.com/derhuerst/generate-vbb-transit-map).
[![npm version](https://img.shields.io/npm/v/svg-transit-map.svg)](https://www.npmjs.com/package/svg-transit-map)
[![License](https://img.shields.io/github/license/juliuste/svg-transit-map.svg?style=flat)](license)
[![Contact me](https://img.shields.io/badge/contact-email-turquoise)](mailto:[email protected])## Installation
```shell
npm install -g svg-transit-map
```## Usage
### CLI
```shell
Usage:
svg-transit-mapOptions:
-y --invert-y Invert the Y axisExamples:
cat graph.json | svg-transit-map -y > map.svg
```Where `graph.json` containts a graph object with three attributes:
```js
{
nodes: [ // list of all nodes
{
id: "900000042101", // required
metadata: {
x: 537.029, // x-coordinate in any metric, required
y: 673.576 // y-coordinate in any metric, required, see also the --invert-y option
}
}
// …
],
edges: [ // list of all edges
{
// the direction of the edge will be ignored, source and target are therefore interchangeable
source: "900000120025", // node id, required
target: "900000120008", // node id, required
metadata: {
lines :["U5","U6"] // list of line ids, required. please note that parallel lines must be modeled as one edge with two metadata.lines entries
}
}
// …
],
lines: [ // additional information for lines. if lines are not found in this list, default colour / group will be applied
{
id: 'U6', // line id, required
color: '#456', // line colour, optional
group: 'U6' // line group id, optional. lines with the same group id will be merged info one for sections where they run in parallel
}
// …
]
}
```### As a library
The module can be used as a JS library, documentation for this will follow.
## Example
For the U-Bahn Berlin graph in `example/berlin.json` and this command:
```shell
cat example/berlin.json | svg-transit-map -y > example/berlin.svg
```We get the following output
![Berlin subway generated transit map](example/berlin.svg)
## Contributing
If you found a bug or want to propose a feature, feel free to visit [the issues page](https://github.com/juliuste/svg-transit-map/issues).