X-Git-Url: http://www.dxcluster.org/gitweb/gitweb.cgi?a=blobdiff_plain;f=perl%2FDXBearing.pm;h=4c8c3eea2a9ce22abbd89b96536dcd4c68bf8c3e;hb=b4826d1f4125788e14fed3adbb99e66242904e74;hp=ea17c2a4221e58d5143f4786ec9d160e9acfb033;hpb=43ac48b5c2aecc7fe27af95d4b613b8d2dd08761;p=spider.git diff --git a/perl/DXBearing.pm b/perl/DXBearing.pm index ea17c2a4..4c8c3eea 100644 --- a/perl/DXBearing.pm +++ b/perl/DXBearing.pm @@ -112,4 +112,36 @@ sub bdist $az = $az+2*$pi if $az < 0; return (rd($az), $dx); } + +# turn a lat long string into floating point lat and long +sub stoll +{ + my ($latd, $latm, $latl, $longd, $longm, $longl) = split /\s+/, shift; + + $longd += ($longm/60); + $longd = 0-$longd if (uc $longl) eq 'W'; + $latd += ($latm/60); + $latd = 0-$latd if (uc $latl) eq 'S'; + return ($latd, $longd); +} + +# turn a lat and long into a string +sub lltos +{ + my ($lat, $long) = @_; + my ($latd, $latm, $longd, $longm); + my $latl = $lat > 0 ? 'N' : 'S'; + my $longl = $long > 0 ? 'E' : 'W'; + + $lat = abs $lat; + $latd = int $lat; + $lat -= $latd; + $latm = int (60 * $lat); + + $long = abs $long; + $longd = int $long; + $long -= $longd; + $longm = int (60 * $long); + return "$latd $latm $latl $longd $longm $longl"; +} 1;