From f8542fffcd66ceba8ea0114181c942a45d3f8a0d Mon Sep 17 00:00:00 2001 From: Birte Kristina Friesel Date: Mon, 26 Aug 2024 20:44:46 +0200 Subject: [PATCH] map, get_travel_distance: Prefer EVA ID over name for route matches Station names frequently change, so the EVA ID is more robust Closes #160 --- lib/Travelynx.pm | 14 ++++++++++---- 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 ) {