-
Notifications
You must be signed in to change notification settings - Fork 1
Interface to the NizhnyNovgorod Metro Map.
License
Unknown, BSD-2-Clause licenses found
Licenses found
Unknown
LICENSE.artistic_2
BSD-2-Clause
LICENSE.bsd
michal-josef-spacek/Map-Tube-NizhnyNovgorod
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
NAME Map::Tube::NizhnyNovgorod - Interface to the NizhnyNovgorod Metro Map. SYNOPSIS use Map::Tube::NizhnyNovgorod; my $obj = Map::Tube::NizhnyNovgorod->new; my $routes_ar = $obj->get_all_routes($from, $to); my $line = $obj->get_line_by_id($line_id); my $line = $obj->get_line_by_name($line_name); my $lines_ar = $obj->get_lines; my $station = $obj->get_node_by_id($station_id); my $station = $obj->get_node_by_name($station_name); my $route = $obj->get_shortest_route($from, $to); my $stations_ar = $obj->get_stations($line); my $metro_name = $obj->name; my $xml_file = $obj->xml; DESCRIPTION It currently provides functionality to find the shortest route between the two given nodes. For more information about NizhnyNovgorod Map, click here <https://en.wikipedia.org/wiki/Nizhny_Novgorod_Metro>. METHODS "new()" Constructor. "get_all_routes($from, $to)" [EXPERIMENTAL] Get all routes from station to station. Returns reference to array with Map::Tube::Route objects. "get_line_by_id($line_id)" Get line object defined by id. Returns Map::Tube::Line object. "get_line_by_name($line_name)" Get line object defined by name. Returns Map::Tube::Line object. "get_lines()" Get lines in metro map. Returns reference to unsorted array with Map::Tube::Line objects. "get_node_by_id($station_id)" Get station node by id. Returns Map::Tube::Node object. "get_node_by_name($station_name)" Get station node by name. Returns Map::Tube::Node object. "get_shortest_route($from, $to)" Get shortest route between $from and $to node names. Node names in $from and $to are case insensitive. Returns Map::Tube::Route object. "get_stations($line)" Get list of stations for concrete metro line. Returns reference to array with Map::Tube::Node objects. "name()" Get metro name. Returns string with metro name. "xml()" Get XML specification of Nizhny Novgorod metro. Returns string with XML. EXAMPLE1 # Pragmas. use strict; use warnings; # Modules. use Encode qw(decode_utf8 encode_utf8); use Map::Tube::NizhnyNovgorod; # Object. my $obj = Map::Tube::NizhnyNovgorod->new; # Get route. my $route = $obj->get_shortest_route(decode_utf8('Буревестник'), decode_utf8('Кировская')); # Print out type. print "Route: ".encode_utf8($route)."\n"; # Output: # Route: Буревестник (Сормовская линия), Бурнаковская (Сормовская линия), Канавинская (Сормовская линия), Московская (Автозаводская линия,Сормовская линия), Чкаловская (Автозаводская линия), Ленинская (Автозаводская линия), Заречная (Автозаводская линия), Двигатель Революции (Автозаводская линия), Пролетарская (Автозаводская линия), Автозаводская (Автозаводская линия), Комсомольская (Автозаводская линия), Кировская (Автозаводская линия) EXAMPLE2 # Pragmas. use strict; use warnings; # Modules. use Map::Tube::NizhnyNovgorod; # Object. my $obj = Map::Tube::NizhnyNovgorod->new; # Get XML file. my $xml_file = $obj->xml; # Print out XML file. print "XML file: $xml_file\n"; # Output like: # XML file: .*/nizhny_novgorod-map.xml EXAMPLE3 # Pragmas. use strict; use warnings; # Modules. use Map::Tube::GraphViz; use Map::Tube::GraphViz::Utils qw(node_color_without_label); use Map::Tube::NizhnyNovgorod; # Object. my $obj = Map::Tube::NizhnyNovgorod->new; # GraphViz object. my $g = Map::Tube::GraphViz->new( 'callback_node' => \&node_color_without_label, 'driver' => 'neato', 'tube' => $obj, ); # Get graph to file. $g->graph('NizhnyNovgorod.png'); # Print file. system "ls -l NizhnyNovgorod.png"; # Output like: # -rw-r--r-- 1 skim skim 292500 Dec 21 17:25 NizhnyNovgorod.png EXAMPLE4 # Pragmas. use strict; use warnings; # Modules. use Encode qw(encode_utf8); use Map::Tube::NizhnyNovgorod; # Object. my $obj = Map::Tube::NizhnyNovgorod->new; # Get lines. my $lines_ar = $obj->get_lines; # Print out. map { print encode_utf8($_->name)."\n"; } sort @{$lines_ar}; # Output: # Автозаводская линия # Сормовская линия EXAMPLE5 # Pragmas. use strict; use warnings; # Modules. use Encode qw(decode_utf8 encode_utf8); use Map::Tube::NizhnyNovgorod; # Arguments. if (@ARGV < 1) { print STDERR "Usage: $0 line\n"; exit 1; } my $line = decode_utf8($ARGV[0]); # Object. my $obj = Map::Tube::NizhnyNovgorod->new; # Get stations for line. my $stations_ar = $obj->get_stations($line); # Print out. map { print encode_utf8($_->name)."\n"; } @{$stations_ar}; # Output: # Usage: __PROG__ line # Output with 'foo' argument. # Map::Tube::get_stations(): ERROR: Invalid Line Name [foo]. (status: 105) file __PROG__ on line __LINE__ # Output with 'Сормовская линия' argument. # Московская # Канавинская # Бурнаковская # Буревестник DEPENDENCIES File::Share, Map::Tube, Moo, namespace::clean. SEE ALSO Map::Tube Core library as Role (Moo) to process map data. Task::Map::Tube Install the Map::Tube modules. Task::Map::Tube::Metro Install the Map::Tube concrete metro modules. REPOSITORY <https://github.com/tupinek/Map-Tube-NizhnyNovgorod> AUTHOR Michal Josef Špaček <mailto:skim@cpan.org> <http://skim.cz> LICENSE AND COPYRIGHT © 2014-2017 Michal Josef Špaček Artistic License BSD 2-Clause License VERSION 0.04
About
Interface to the NizhnyNovgorod Metro Map.
Resources
License
Unknown, BSD-2-Clause licenses found
Licenses found
Unknown
LICENSE.artistic_2
BSD-2-Clause
LICENSE.bsd
Stars
Watchers
Forks
Packages 0
No packages published