diff options
author | Birte Kristina Friesel <derf@finalrewind.org> | 2024-08-26 20:44:46 +0200 |
---|---|---|
committer | Birte Kristina Friesel <derf@finalrewind.org> | 2024-08-26 20:44:46 +0200 |
commit | f8542fffcd66ceba8ea0114181c942a45d3f8a0d (patch) | |
tree | 0bba058187d2017f11f8ee83c5adc2652989bb21 | |
parent | 4b6049cd1ae479b8c2c6ea54ae2ae60d2cd20831 (diff) |
map, get_travel_distance: Prefer EVA ID over name for route matches2.8.33
Station names frequently change, so the EVA ID is more robust
Closes #160
-rwxr-xr-x | lib/Travelynx.pm | 14 | ||||
-rwxr-xr-x | lib/Travelynx/Model/Journeys.pm | 8 |
2 files changed, 16 insertions, 6 deletions
diff --git a/lib/Travelynx.pm b/lib/Travelynx.pm index 4a929f4..6ee21b3 100755 --- a/lib/Travelynx.pm +++ b/lib/Travelynx.pm @@ -2208,10 +2208,16 @@ sub startup { my @route = @{ $journey->{route} }; - my $from_index - = first_index { $_->[0] eq $journey->{from_name} } @route; - my $to_index - = first_index { $_->[0] eq $journey->{to_name} } @route; + my $from_index = first_index { + ( $_->[1] and $_->[1] == $journey->{from_eva} ) + or $_->[0] eq $journey->{from_name} + } + @route; + my $to_index = first_index { + ( $_->[1] and $_->[1] == $journey->{to_eva} ) + or $_->[0] eq $journey->{to_name} + } + @route; if ( $from_index == -1 ) { my $rename = $self->app->renamed_station; diff --git a/lib/Travelynx/Model/Journeys.pm b/lib/Travelynx/Model/Journeys.pm index e00c844..79bc322 100755 --- a/lib/Travelynx/Model/Journeys.pm +++ b/lib/Travelynx/Model/Journeys.pm @@ -1192,8 +1192,12 @@ sub get_travel_distance { my $geo = GIS::Distance->new(); my $distance_beeline = $geo->distance_metal( @{$from_latlon}, @{$to_latlon} ); - my @route = after_incl { $_->[0] eq $from } @{$route_ref}; - @route = before_incl { $_->[0] eq $to } @route; + my @route + = after_incl { ( $_->[1] and $_->[1] == $from_eva ) or $_->[0] eq $from } + @{$route_ref}; + @route + = before_incl { ( $_->[1] and $_->[1] == $to_eva ) or $_->[0] eq $to } + @route; if ( @route < 2 or $route[-1][0] ne $to ) { |