Tubemaps是一个浏览器,NodeJs库和命令行工具用于处理轨道数据。
给定一个数据集,它将取得所有轨道/站点的关系。

图片利用 Visualizing the tube in D3实现。
命令行工具
目前命令行只支持伦敦
$ tubemaps path --from "Euston" --to "Hammersmith" # Victoria Line: Euston to Warren Street # Victoria Line: Warren Street to Oxford Circus # Victoria Line: Oxford Circus to Green Park # Victoria Line: Green Park to Victoria # Victoria Line: Victoria to Sloane Square # District Line: Sloane Square to South Kensington # Piccadilly Line: South Kensington to Gloucester Road # Piccadilly Line: Gloucester Road to Earl's Court # District Line: Earl's Court to Barons Court # Piccadilly Line: Barons Court to Hammersmith $ tubemaps station "Euston" --london # Northern Line: Camden Town # Victoria Line: King's Cross St. Pancras # Northern Line: Mornington Crescent # Victoria Line: Warren Street # Victoria Line: King's Cross St. Pancras # Victoria Line: Warren Street
NodeJS Library
var TubeMap = require('tubemaps').TubeMap; var london = new TubeMap({ stations: csv.stations, lines: csv.lines, connections: csv.connections }); // Find information about a station var victoriaStation = london.getStationByName('Victoria'); // {conns:[{display_name: "Euston"}, ...], ..} // Find information a line var victoriaLine = london.getLineByName('Victoria Line'); // [station1, station2,..] // Find all connections in a line var conns = london.line(victoriaLine) // [{station1: #euston, station2: #warrentStreet}] // Find path between two stations var conns = london.path(euston, victoria) // [{station1: #euston, station2: #warrentStreet, line: #victoriaLine}] // Find path between two stations in a line var conns = london.path(euston, victoria, line) // [{station1: #euston, station2: #warrentStreet, line: #victoriaLine}]
现有数据集
伦敦
var Maps = require('tubemaps/maps'); Maps("london", function(err, tube) { var euston = tube.getStationByName("Euston"); var victoria = tube.getStationByName("Victoria"); console.log(tube.path(euston, victoria)) })
</div> </div>
项目主页:http://www.open-open.com/lib/view/home/1417058595893