Skip to content

Render an SVG transit map for a given transport network graph with position information.

License

Notifications You must be signed in to change notification settings

rsilva-uw/svg-transit-map

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

5 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

svg-transit-map

Draw an SVG transit map for a given transport network graph with position information. Consumes data in the JSON Graph Format, see the usage section.

This package only renders a given network as SVG. For automatic metro map drawing, see transit-map.

Code forked from derhuerst/generate-vbb-transit-map.

npm version license chat on gitter

Installation

npm install -g svg-transit-map

Usage

CLI

Usage:
    svg-transit-map

Options:
    -y --invert-y Invert the Y axis

Examples:
    cat graph.json | svg-transit-map -y > map.svg

Where graph.json containts a graph object with three attributes:

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

    cat example/berlin.json | svg-transit-map -y > example/berlin.svg

We get the following output

Berlin subway generated transit map

Contributing

If you found a bug, want to propose a feature or feel the urge to complain about your life, feel free to visit the issues page.

About

Render an SVG transit map for a given transport network graph with position information.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • JavaScript 100.0%