summaryrefslogtreecommitdiff
path: root/bin
diff options
context:
space:
mode:
Diffstat (limited to 'bin')
-rwxr-xr-xbin/hafas-m21
1 files changed, 19 insertions, 2 deletions
diff --git a/bin/hafas-m b/bin/hafas-m
index 2b6c2d0..53f232b 100755
--- a/bin/hafas-m
+++ b/bin/hafas-m
@@ -59,7 +59,14 @@ my %opt = (
service => $service,
);
-if ( $opt{station} =~ m{[|]} ) {
+if ( $opt{station} =~ m{ ^ (?<lat> [0-9.]+ ) : (?<lon> [0-9].+ ) $ }x ) {
+ $opt{geoSearch} = {
+ lat => $+{lat},
+ lon => $+{lon},
+ };
+ delete $opt{station};
+}
+elsif ( $opt{station} =~ m{[|]} ) {
$opt{journey} = { id => $opt{station} };
delete $opt{station};
}
@@ -234,7 +241,17 @@ if ( my $err = $status->errstr ) {
exit 2;
}
-if ( $opt{journey} ) {
+if ( $opt{geoSearch} ) {
+ for my $result ( $status->results ) {
+ printf(
+ "%5.1f km %8d %s\n",
+ $result->{distance_m} * 1e-3,
+ $result->{eva}, $result->{name}
+ );
+ }
+ exit 0;
+}
+elsif ( $opt{journey} ) {
my $result = $status->result;
printf( "%s → %s", $result->name, $result->route_end );