]> gb7djk.dxcluster.net Git - spider.git/blob - contrib/g0rdi/show/heading.pl
put dx.pl into an explicit handle sub
[spider.git] / contrib / g0rdi / show / heading.pl
1 #
2 # show the heading and distance for each callsign or prefix entered
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::mylatitude;
17         $long = $main::mylongitude;
18 }
19
20 foreach $l (@list) {
21         # prefixes --->
22         my @ans = Prefix::extract($l);
23         next if !@ans;
24         my $pre = shift @ans;
25         my $a;
26         foreach $a (@ans) {
27                 my ($b, $dx) = DXBearing::bdist($lat, $long, $a->{lat}, $a->{long});
28                 my ($r, $rdx) = DXBearing::bdist($a->{lat}, $a->{long}, $lat, $long);
29                 push @out, sprintf "%-9s (%s, %s) Bearing: %.0f Recip: %.0f %.0fKm %.0fMi", uc $l, $pre, $a->name(), $b, $r, $dx, $dx * 0.62133785;
30                 $l = "";
31         }
32 }
33
34 return (1, @out);