Ignore polylines which do not agree with IRIS route

This commit is contained in:
Daniel Friesel 2020-02-25 17:55:19 +01:00
parent 5c05ed609f
commit 1d2b37f849

View file

@ -2052,6 +2052,7 @@ sub startup {
my ($tx) = @_;
my $body = decode( 'utf-8', $tx->res->body );
my $json = JSON->new->decode($body);
my @station_list;
my @coordinate_list;
for my $feature ( @{ $json->{polyline}{features} } ) {
@ -2061,6 +2062,8 @@ sub startup {
and $feature->{properties}{type} eq 'stop' )
{
push( @{$coord}, $feature->{properties}{id} );
push( @station_list,
$feature->{properties}{name} );
}
push( @coordinate_list, $coord );
}
@ -2073,8 +2076,21 @@ sub startup {
};
$cache->freeze( $url, $ret );
my $iris_stations = join( '|', $train->route );
my $hafas_stations = join( '|', @station_list );
if ( $iris_stations ne $hafas_stations ) {
$self->app->log->warn( 'Ignoring polyline for '
. $train->line
. ": IRIS route does not agree with HAFAS route: $iris_stations != $hafas_stations"
);
$promise->reject('polyline route mismatch');
}
else {
$promise->resolve($ret);
}
}
)->catch(
sub {
my ($err) = @_;