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
This commit is contained in:
Birte Kristina Friesel 2024-08-26 20:44:46 +02:00
parent 4b6049cd1a
commit f8542fffcd
No known key found for this signature in database
GPG key ID: 19E6E524EBB177BA
2 changed files with 16 additions and 6 deletions

View file

@ -2208,10 +2208,16 @@ sub startup {
my @route = @{ $journey->{route} }; my @route = @{ $journey->{route} };
my $from_index my $from_index = first_index {
= first_index { $_->[0] eq $journey->{from_name} } @route; ( $_->[1] and $_->[1] == $journey->{from_eva} )
my $to_index or $_->[0] eq $journey->{from_name}
= first_index { $_->[0] eq $journey->{to_name} } @route; }
@route;
my $to_index = first_index {
( $_->[1] and $_->[1] == $journey->{to_eva} )
or $_->[0] eq $journey->{to_name}
}
@route;
if ( $from_index == -1 ) { if ( $from_index == -1 ) {
my $rename = $self->app->renamed_station; my $rename = $self->app->renamed_station;

View file

@ -1192,8 +1192,12 @@ sub get_travel_distance {
my $geo = GIS::Distance->new(); my $geo = GIS::Distance->new();
my $distance_beeline my $distance_beeline
= $geo->distance_metal( @{$from_latlon}, @{$to_latlon} ); = $geo->distance_metal( @{$from_latlon}, @{$to_latlon} );
my @route = after_incl { $_->[0] eq $from } @{$route_ref}; my @route
@route = before_incl { $_->[0] eq $to } @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 ) { if ( @route < 2 or $route[-1][0] ne $to ) {