summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBirte Kristina Friesel <derf@finalrewind.org>2024-08-26 20:44:46 +0200
committerBirte Kristina Friesel <derf@finalrewind.org>2024-08-26 20:44:46 +0200
commitf8542fffcd66ceba8ea0114181c942a45d3f8a0d (patch)
tree0bba058187d2017f11f8ee83c5adc2652989bb21
parent4b6049cd1ae479b8c2c6ea54ae2ae60d2cd20831 (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-xlib/Travelynx.pm14
-rwxr-xr-xlib/Travelynx/Model/Journeys.pm8
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 ) {