NAME Map::Tube::Warsaw - Interface to the Warsaw Tube Map. SYNOPSIS use Map::Tube::Warsaw; my $obj = Map::Tube::Warsaw->new; my $routes_ar = $obj->get_all_routes($from, $to); 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 Warsaw Map, click here <https://en.wikipedia.org/wiki/Warsaw_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_lines()" Get lines in metro map. Returns reference to 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 Warsaw metro. Returns string with XML. EXAMPLE1 # Pragmas. use strict; use warnings; # Modules. use Encode qw(decode_utf8 encode_utf8); use Map::Tube::Warsaw; # Object. my $obj = Map::Tube::Warsaw->new; # Get route. my $route = $obj->get_shortest_route(decode_utf8('Imielin'), decode_utf8('Świętokrzyska')); # Print out type. print "Route: ".encode_utf8($route)."\n"; # Output: # Route: Imielin (Linia M1), Stokłosy (Linia M1), Ursynów (Linia M1), Służew (Linia M1), Wilanowska (Linia M1), Wierzbno (Linia M1), Racławicka (Linia M1), Pole Mokotowskie (Linia M1), Politechnika (Linia M1), Centrum (Linia M1), Świętokrzyska (Linia M1) EXAMPLE2 # Pragmas. use strict; use warnings; # Modules. use Map::Tube::Warsaw; # Object. my $obj = Map::Tube::Warsaw->new; # Get XML file. my $xml_file = $obj->xml; # Print out XML file. print "XML file: $xml_file\n"; # Output like: # XML file: .*/warsaw-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::Warsaw; # Object. my $obj = Map::Tube::Warsaw->new; # GraphViz object. my $g = Map::Tube::GraphViz->new( 'callback_node' => \&node_color_without_label, 'tube' => $obj, ); # Get graph to file. $g->graph('Warsaw.png'); # Print file. system "ls -l Warsaw.png"; # Output like: # -rw-r--r-- 1 skim skim 86520 Mar 13 05:03 Warsaw.png DEPENDENCIES File::Share, Map::Tube, Moo, namespace::clean. SEE ALSO Map::Tube, Map::Tube::Graph, Map::Tube::GraphViz, Map::Tube::Plugin::FuzzyFind, Map::Tube::Plugin::Graph, Map::Tube::Text::Shortest, Map::Tube::Text::Table, Task::Map::Tube. Map::Tube::Barcelona, Map::Tube::Beijing, Map::Tube::Berlin, Map::Tube::Bucharest, Map::Tube::Budapest, Map::Tube::Delhi, Map::Tube::Dnipropetrovsk, Map::Tube::Glasgow, Map::Tube::Kazan, Map::Tube::Kharkiv, Map::Tube::Kiev, Map::Tube::KoelnBonn, Map::Tube::London, Map::Tube::Lyon, Map::Tube::Minsk, Map::Tube::Moscow, Map::Tube::NYC, Map::Tube::Nanjing, Map::Tube::Novosibirsk, Map::Tube::Prague, Map::Tube::SaintPetersburg, Map::Tube::Samara, Map::Tube::Singapore, Map::Tube::Sofia, Map::Tube::Tbilisi, Map::Tube::Tokyo, Map::Tube::Vienna, Map::Tube::Yekaterinburg. REPOSITORY <https://github.com/tupinek/Map-Tube-Warsaw> AUTHOR Michal Špaček <mailto:skim@cpan.org> <http://skim.cz> LICENSE AND COPYRIGHT © 2014-2015 Michal Špaček Artistic License BSD 2-Clause License VERSION 0.04