Scroll to navigation

Travel::Routing::DE::EFA(3pm) User Contributed Perl Documentation Travel::Routing::DE::EFA(3pm)
 

NAME

Travel::Routing::DE::EFA - unofficial interface to EFA-based itinerary services

SYNOPSIS

        use Travel::Routing::DE::EFA;
        my $efa = Travel::Routing::DE::EFA->new(
                efa_url     => 'http://efa.vrr.de/vrr/XSLT_TRIP_REQUEST2',
                origin      => [ 'Essen',    'HBf' ],
                destination => [ 'Duisburg', 'HBf' ],
        );
        for my $route ( $efa->routes ) {
                for my $part ( $route->parts ) {
                        printf(
                                "%s at %s -> %s at %s, via %s to %s\n",
                                $part->departure_time, $part->departure_stop,
                                $part->arrival_time,   $part->arrival_stop,
                                $part->train_line,     $part->train_destination,
                        );
                }
                print "\n";
        }

VERSION

version 2.08

DESCRIPTION

Travel::Routing::DE::EFA is a client for EFA-based itinerary services. You pass it the start/stop of your journey, maybe a time and a date and more details, and it returns the up-to-date scheduled connections between those two stops.
It uses LWP::UserAgent and XML::LibXML for this.

METHODS

$efa = Travel::Routing::DE::EFA->new(%opts)
Returns a new Travel::Routing::DE::EFA object and sets up its POST data via %opts.
Valid hash keys and their values are:
efa_url => efa_url
Mandatory. Sets the entry point to the EFA itinerary service. The following URLs (grouped by country) are known. A service marked with [!] is not completely supported yet and may not work at all.
Austria
<http://efa.ivb.at/ivb/XSLT_TRIP_REQUEST2> (Innsbrucker Verkehsbetriebe)
<http://efa.svv-info.at/sbs/XSLT_TRIP_REQUEST2> (Salzburger Verkehrsverbund)
<http://efa.vor.at/wvb/XSLT_TRIP_REQUEST2> (Verkehrsverbund Ost-Region)
<http://efaneu.vmobil.at/vvv/XSLT_TRIP_REQUEST2> (Vorarlberger Verkehrsverbund)
<http://fahrplan.verbundlinie.at/stv/XSLT_TRIP_REQUEST2> (Verkehsverbund Steiermark) [!]
<http://www.linzag.at/static/XSLT_TRIP_REQUEST2> (Linz AG) [!]
Germany
<http://212.114.197.7/vgnExt_oeffi/XML_TRIP_REQUEST2> (Verkehrsverbund Grossraum Nuernberg)
<http://efa.vrr.de/vrr/XSLT_TRIP_REQUEST2> (Verkehrsverbund Rhein-Ruhr)
<http://www2.vvs.de/vvs/XSLT_TRIP_REQUEST2> (Verkehrsverbund Stuttgart)
If you found a URL not listed here, please send it to <derf@finalrewind.org>.
origin => [ city, stop [ , type ] ]
Mandatory. Sets the start of the journey. type is optional and may be one of stop (default), address (street and house number) or poi ("point of interest").
destination => [ city, stop [ , type ] ]
Mandatory. Sets the end of the journey, see origin.
via => [ city, stop [ , type ] ]
Optional. Specifies an intermediate stop which the resulting itinerary must contain. See origin for arguments.
arrival_time => HH:MM
Journey end time
departure_time => HH:MM
Journey start time. Default: now
date => DD.MM.[YYYY]
Journey date. Default: today
exclude => \@exclude
Do not use certain transport types for itinerary. Accepted arguments: zug, s-bahn, u-bahn, stadtbahn, tram, stadtbus, regionalbus, schnellbus, seilbahn, schiff, ast, sonstige
max_interchanges => num
Set maximum number of interchanges
num_results => num
Return up to num connections. If unset, the default of the respective EFA server is used (usually 4 or 5).
select_interchange_by => speed|waittime|distance
Prefer either fast connections (default), connections with low wait time or connections with little distance to walk
use_near_stops => 0|1
If true: Try using near stops instead of the specified origin/destination ones
train_type => local|ic|ice
Include only local trains into itinarery (default), all but ICEs, or all.
The latter two are usually way more expensive for short routes.
walk_speed => slow|fast|normal
Set walk speed. Default: normal
with_bike => 0|1
If true: Prefer connections allowing passengers with bikes
lwp_options => \%hashref
Options to pass to "LWP::UserAgent->new".
submit => 0|1
By default, new will create a POST request and submit it. If you do not want it to be submitted yet, set this to 0.
$efa->submit(%opts)
Submit the query to efa_url. %opts is passed on to "LWP::UserAgent->new".
$efa->routes
Returns a list of Travel::Routing::DE::EFA::Route(3pm) elements. Each one contains one method of getting from start to stop.

ACCESSORS

The following methods act like the arguments to new. See there.
$efa->departure_time($time)
$efa->arrival_time($time)
$efa->date($date)
$efa->exclude(@exclude)
$efa->max_interchanges($num)
$efa->select_interchange_by($selection)
$efa->train_type($type)
$efa->use_near_stops($bool)
$efa->walk_speed($speed)
$efa->with_bike($bool)

STATIC METHODS

Travel::Routing::DE::EFA::get_efa_urls()
Returns a list of known EFA entry points. Each list element is a hashref with the following elements.
url: service URL as passed to efa_url
name: Name of the entity operating this service
shortname: Short name of the entity

DIAGNOSTICS

When encountering an error, Travel::Routing::DE::EFA throws a Travel::Routing::DE::EFA::Exception(3pm) object.

DEPENDENCIES

LWP::UserAgent(3pm)
XML::LibXML(3pm)

BUGS AND LIMITATIONS

None known.

SEE ALSO

Travel::Routing::DE::EFA::Exception(3pm)
Travel::Routing::DE::EFA::Route(3pm)
WWW::EFA is another implementation, using Moose.

AUTHOR

Copyright (C) 2009-2014 by Daniel Friesel <derf@finalrewind.org>

LICENSE

  0. You just DO WHAT THE FUCK YOU WANT TO.
2014-10-10 perl v5.20.1