Travel::Routing::DE::EFA3pm
Unofficial interface to efa-based itinerary services
Usage
use Travel::Routing::DE::EFA;my $efa = Travel::Routing::DE::EFA->new(efa_url => 'https://app.vrr.de/vrrstd/XML_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.24
Overview
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. See
"efa --list"for a list of supported services.If you found a URL not listed there, please send it to <[email protected]>.
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) orpoi("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
originfor arguments.
arrival_time=> HH:MM-
Journey end time
departure_time=> HH:MM-
Journey start time. Default: now
date=> DD.MM.[YYYY]-
Journey date. Also accepts the string
tomorrow. 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=> $int-
If $int is a true value: Take stops close to the stop/start into account and possibly use them instead. Up to $int minutes of walking are considered acceptable.
Otherwise: Do not take stops close to stop/start into account.
train_type=>local|ic|ice-
Include only local trains into itinerary (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: Request connections allowing passengers with bikes. Note that the backed may return an empty result if no such connection exists or bike-support simply isn't known.
with_low_platform=>0|1-
If true: Request connections which only use low-platform ("Niederflur") vehicles. Note that the backed will return an empty result if no such connection exists.
with_wheelchair=>0|1-
If true: Request connections which are wheelchair-accessible. Again, note that the backend may return an empty result if no such connection exists or wheelchair-support isn't known.
without_elevators=>0|1-
If true: Request that transfers do not require usage of elevators.
without_escalators=>0|1-
If true: Request that transfers do not require usage of escalators.
without_solid_stairs=>0|1-
If true: Request that transfers do not require stairs to be taken (i.e. ramps, escalators, elevators or similar must be available).
lwp_options=> \%hashref-
Options to pass to
"LWP::UserAgent->new".
submit=>0|1-
By default,
newwill create a POST request and submit it. If you do not want it to be submitted yet, set this to0.
- $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($duration)
- $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 toefa_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
•
|
|
|---|---|
•
|
Bugs and limitations
None known.
Releases
6 releases since Debian 8 (Jessie); the text changed 5 times.