Loading bin/hafas-m +2 −2 Original line number Diff line number Diff line Loading @@ -245,8 +245,8 @@ if ( $opt{geoSearch} ) { for my $result ( $status->results ) { printf( "%5.1f km %8d %s\n", $result->{distance_m} * 1e-3, $result->{eva}, $result->{name} $result->distance_m * 1e-3, $result->eva, $result->name ); } exit 0; Loading lib/Travel/Status/DE/HAFAS.pm +4 −26 Original line number Diff line number Diff line Loading @@ -20,6 +20,7 @@ use Travel::Status::DE::HAFAS::Message; use Travel::Status::DE::HAFAS::Polyline qw(decode_polyline); use Travel::Status::DE::HAFAS::Journey; use Travel::Status::DE::HAFAS::StopFinder; use Travel::Status::DE::HAFAS::Stop; our $VERSION = '4.08'; Loading Loading @@ -627,14 +628,7 @@ sub parse_geosearch { for my $loc (@locL) { push( @{ $self->{results} }, { eva => 0 + $loc->{extId}, name => $loc->{name}, lat => $loc->{crd}{x} * 1e-6, lon => $loc->{crd}{y} * 1e-6, weight => $loc->{wt}, distance_m => $loc->{dist}, } Travel::Status::DE::HAFAS::Stop->new( loc => $loc ) ); } Loading Loading @@ -1009,24 +1003,8 @@ describing it. If no error occurred, returns undef. =item $status->results (geoSearch) Returns a list of stations. Each list element is a hash ref with the following keys. =over =item * eva (identifier / EVA code) =item * name =item * lat (latitude) =item * lon (longitude) =item * distance_m (distance from requested coordinates, in meters) =item * weight (relevance / importance of result, unknown metric) =back Returns a list of stations. Each list element is a Travel::Status::DE::HAFAS::Stop(3pm) object. If no matching results were found or the parser / http request failed, returns an empty list. Loading lib/Travel/Status/DE/HAFAS/Stop.pm 0 → 100644 +128 −0 Original line number Diff line number Diff line package Travel::Status::DE::HAFAS::Stop; # vim:foldmethod=marker use strict; use warnings; use 5.014; use parent 'Class::Accessor'; our $VERSION = '4.08'; Travel::Status::DE::HAFAS::Stop->mk_ro_accessors( qw(eva name lat lon distance_m weight)); # {{{ Constructor sub new { my ( $obj, %opt ) = @_; my $loc = $opt{loc}; my $ref = { eva => 0 + $loc->{extId}, name => $loc->{name}, lat => $loc->{crd}{x} * 1e-6, lon => $loc->{crd}{y} * 1e-6, weight => $loc->{wt}, distance_m => $loc->{dist}, }; bless( $ref, $obj ); return $ref; } # }}} 1; __END__ =head1 NAME Travel::Status::DE::HAFAS::Stop - Information about a HAFAS stop. =head1 SYNOPSIS # in geoSearch mode for my $stop ($status->results) { printf( "%5.1f km %8d %s\n", $result->distance_m * 1e-3, $result->eva, $result->name ); } =head1 VERSION version 4.08 =head1 DESCRIPTION Travel::Status::DE::HAFAS::Stop describes a HAFAS stop. It may be part of a journey or part of a geoSearch request. geoSearch-specific accessors are annotated with "(geoSearch)" and return undef for non-geoSearch stops. =head1 METHODS =head2 ACCESSORS =over =item $stop->name Stop name, e.g. "Essen Hbf" or "Unter den Linden/B75, Tostedt". =item $stop->eva EVA ID, e.g. 8000080. =item $stop->lat Stop latitude (WGS-84) =item $stop->lon Stop longitude (WGS-84) =item $stop->distance_m (geoSearch) Distance in meters between the requested coordinates and this stop. =item $stop->weight Weight / Relevance / Importance of this stop using an unknown metric. Higher values indicate more relevant stops. =back =head1 DIAGNOSTICS None. =head1 DEPENDENCIES =over =item Class::Accessor(3pm) =back =head1 BUGS AND LIMITATIONS None known. =head1 SEE ALSO Travel::Status::DE::HAFAS(3pm). =head1 AUTHOR Copyright (C) 2023 by Birthe Friesel E<lt>derf@finalrewind.orgE<gt> =head1 LICENSE This module is licensed under the same terms as Perl itself. Loading
bin/hafas-m +2 −2 Original line number Diff line number Diff line Loading @@ -245,8 +245,8 @@ if ( $opt{geoSearch} ) { for my $result ( $status->results ) { printf( "%5.1f km %8d %s\n", $result->{distance_m} * 1e-3, $result->{eva}, $result->{name} $result->distance_m * 1e-3, $result->eva, $result->name ); } exit 0; Loading
lib/Travel/Status/DE/HAFAS.pm +4 −26 Original line number Diff line number Diff line Loading @@ -20,6 +20,7 @@ use Travel::Status::DE::HAFAS::Message; use Travel::Status::DE::HAFAS::Polyline qw(decode_polyline); use Travel::Status::DE::HAFAS::Journey; use Travel::Status::DE::HAFAS::StopFinder; use Travel::Status::DE::HAFAS::Stop; our $VERSION = '4.08'; Loading Loading @@ -627,14 +628,7 @@ sub parse_geosearch { for my $loc (@locL) { push( @{ $self->{results} }, { eva => 0 + $loc->{extId}, name => $loc->{name}, lat => $loc->{crd}{x} * 1e-6, lon => $loc->{crd}{y} * 1e-6, weight => $loc->{wt}, distance_m => $loc->{dist}, } Travel::Status::DE::HAFAS::Stop->new( loc => $loc ) ); } Loading Loading @@ -1009,24 +1003,8 @@ describing it. If no error occurred, returns undef. =item $status->results (geoSearch) Returns a list of stations. Each list element is a hash ref with the following keys. =over =item * eva (identifier / EVA code) =item * name =item * lat (latitude) =item * lon (longitude) =item * distance_m (distance from requested coordinates, in meters) =item * weight (relevance / importance of result, unknown metric) =back Returns a list of stations. Each list element is a Travel::Status::DE::HAFAS::Stop(3pm) object. If no matching results were found or the parser / http request failed, returns an empty list. Loading
lib/Travel/Status/DE/HAFAS/Stop.pm 0 → 100644 +128 −0 Original line number Diff line number Diff line package Travel::Status::DE::HAFAS::Stop; # vim:foldmethod=marker use strict; use warnings; use 5.014; use parent 'Class::Accessor'; our $VERSION = '4.08'; Travel::Status::DE::HAFAS::Stop->mk_ro_accessors( qw(eva name lat lon distance_m weight)); # {{{ Constructor sub new { my ( $obj, %opt ) = @_; my $loc = $opt{loc}; my $ref = { eva => 0 + $loc->{extId}, name => $loc->{name}, lat => $loc->{crd}{x} * 1e-6, lon => $loc->{crd}{y} * 1e-6, weight => $loc->{wt}, distance_m => $loc->{dist}, }; bless( $ref, $obj ); return $ref; } # }}} 1; __END__ =head1 NAME Travel::Status::DE::HAFAS::Stop - Information about a HAFAS stop. =head1 SYNOPSIS # in geoSearch mode for my $stop ($status->results) { printf( "%5.1f km %8d %s\n", $result->distance_m * 1e-3, $result->eva, $result->name ); } =head1 VERSION version 4.08 =head1 DESCRIPTION Travel::Status::DE::HAFAS::Stop describes a HAFAS stop. It may be part of a journey or part of a geoSearch request. geoSearch-specific accessors are annotated with "(geoSearch)" and return undef for non-geoSearch stops. =head1 METHODS =head2 ACCESSORS =over =item $stop->name Stop name, e.g. "Essen Hbf" or "Unter den Linden/B75, Tostedt". =item $stop->eva EVA ID, e.g. 8000080. =item $stop->lat Stop latitude (WGS-84) =item $stop->lon Stop longitude (WGS-84) =item $stop->distance_m (geoSearch) Distance in meters between the requested coordinates and this stop. =item $stop->weight Weight / Relevance / Importance of this stop using an unknown metric. Higher values indicate more relevant stops. =back =head1 DIAGNOSTICS None. =head1 DEPENDENCIES =over =item Class::Accessor(3pm) =back =head1 BUGS AND LIMITATIONS None known. =head1 SEE ALSO Travel::Status::DE::HAFAS(3pm). =head1 AUTHOR Copyright (C) 2023 by Birthe Friesel E<lt>derf@finalrewind.orgE<gt> =head1 LICENSE This module is licensed under the same terms as Perl itself.