Ignore polylines which do not agree with IRIS route
This commit is contained in:
parent
5c05ed609f
commit
1d2b37f849
1 changed files with 17 additions and 1 deletions
|
@ -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) = @_;
|
||||
|
|
Loading…
Reference in a new issue