added sh/qra
[spider.git] / cmd / show / qra.pl
1 #
2 # show the distance and bearing each QRA locator
3 #
4 # $Id$
5 #
6
7 my ($self, $line) = @_;
8 my @list = split /\s+/, $line;                # generate a list of callsigns
9
10 my $l;
11 my @out;
12 my $lat = $self->user->lat;
13 my $long = $self->user->long;
14 if (!$long && !$lat) {
15         push @out, $self->msg('heade1');
16         $lat = $main::mylat;
17         $long = $main::mylong;
18 }
19
20 foreach $l (@list) {
21         # locators --->
22         if (DXBearing::is_qra($l) || $l =~ /^[A-Za-z][A-Za-z]\d\d$/) {
23                 my $qra = uc $l;
24                 $qra .= 'MM' if $l =~ /^[A-Za-z][A-Za-z]\d\d$/;
25                 
26                 my ($qlat, $qlong) = DXBearing::qratoll($qra);
27                 my ($b, $dx) = DXBearing::bdist($lat, $long, $qlat, $qlong);
28                 my ($r, $rdx) = DXBearing::bdist($qlat, $qlong, $lat, $long);
29                 push @out, sprintf "%-9s Bearing: %.0f Recip: %.0f %.0fKm %.0fMi", $qra, $b, $r, $dx, $dx * 0.62133785;
30         }
31 }
32
33 return (1, @out);