diff options
author | Daniel Friesel <derf@finalrewind.org> | 2014-03-02 19:20:31 +0100 |
---|---|---|
committer | Daniel Friesel <derf@finalrewind.org> | 2014-03-02 19:20:31 +0100 |
commit | 444dad0d33aa2d0ca9750bbac49268489854ba4d (patch) | |
tree | f02e3f1450df2eaeb1ea6ed86c825238faff1c30 /lib/Travel/Routing/DE | |
parent | 526412033bbb5f656770d9ebd1999819adf22d7b (diff) |
Add option to specify maximum number of connections
Diffstat (limited to 'lib/Travel/Routing/DE')
-rw-r--r-- | lib/Travel/Routing/DE/EFA.pm | 19 |
1 files changed, 19 insertions, 0 deletions
diff --git a/lib/Travel/Routing/DE/EFA.pm b/lib/Travel/Routing/DE/EFA.pm index 6d67bd8..4047306 100644 --- a/lib/Travel/Routing/DE/EFA.pm +++ b/lib/Travel/Routing/DE/EFA.pm @@ -156,6 +156,14 @@ sub max_interchanges { return; } +sub number_of_trips { + my ( $self, $num ) = @_; + + $self->{post}->{calcNumberOfTrips} = $num; + + return; +} + sub select_interchange_by { my ( $self, $prefer ) = @_; @@ -312,6 +320,7 @@ sub create_post { name_destination => q{}, name_origin => q{}, name_via => q{}, + nextDepsPerLeg => 1, outputFormat => 'XML', placeInfo_destination => 'invalid', placeInfo_origin => 'invalid', @@ -364,6 +373,9 @@ sub create_post { if ( $conf->{max_interchanges} ) { $self->max_interchanges( $conf->{max_interchanges} ); } + if ( $conf->{num_results} ) { + $self->number_of_trips( $conf->{num_results} ); + } if ( $conf->{select_interchange_by} ) { $self->select_interchange_by( $conf->{select_interchange_by} ); } @@ -586,6 +598,8 @@ sub parse_xml { my $tree = $self->{tree} = XML::LibXML->load_xml( string => $self->{xml_reply}, ); + # say $tree->toString(2); + my $xp_element = XML::LibXML::XPathExpression->new( '//itdItinerary/itdRouteList/itdRoute'); my $xp_err = XML::LibXML::XPathExpression->new( @@ -785,6 +799,11 @@ seilbahn, schiff, ast, sonstige Set maximum number of interchanges +=item B<num_results> => I<num> + +Return up to I<num> connections. If unset, the default of the respective +EFA server is used (usually 4 or 5). + =item B<select_interchange_by> => B<speed>|B<waittime>|B<distance> Prefer either fast connections (default), connections with low wait time or |