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:
parent
4b6049cd1a
commit
f8542fffcd
2 changed files with 16 additions and 6 deletions
|
@ -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;
|
||||||
|
|
|
@ -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 ) {
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue