### Re: Put yourself on the Monk Map

by Rudif (Hermit)
 on Jan 12, 2001 at 02:29 UTC ( #51237=note: print w/replies, xml ) Need Help??

in reply to Put yourself on the Monk Map

Put yourself on the Monk Map made even easier ;-)
```#! perl -w

use strict;

my \$usage = <<__EOT__;
Usage:
\$0 [<latitude> <longitude>] [-test]
Converts latitude and longitude (in degrees) to format suitable for Mo
+nkMap.
-test    runs selftest
__EOT__

my (\$lat, \$lon, \$test) = (0, 0, 0);
if (@ARGV == 2) {
(\$lat, \$lon) = @ARGV;
}
elsif (@ARGV == 1 && \$ARGV[0] eq '-test') {
\$test = 1;
}
else {
die \$usage;
}

if (\$test) {
selftest();
}
else {
printf "%s\n", ll2monkmap (\$lat, \$lon);
}

exit;

sub ll2monkmap {
my (\$lat, \$lon) = @_;
sprintf "%12.5f%12.5f   <!-- Location:latitude=%s,longitude=%s-->"
+, \$lat, \$lon, dec2degminsec(\$lat), dec2degminsec(\$lon);
}

sub dec2degminsec {
my \$dec = shift;

while (\$dec < -180) {
\$dec += 360;
}
while (\$dec > 180) {
\$dec -= 360;
}

my \$neg = \$dec < 0;
\$dec = - \$dec if \$neg;

my \$deg = int \$dec;
\$dec -= \$deg;

\$dec *= 60;
my \$min = int \$dec;
\$dec -= \$min;

\$dec *= 60;
my \$sec = int \$dec;

sprintf "%s%03d.%02d.%02d", \$neg ? "-" : "", \$deg, \$min, \$sec;
}

sub selftest {
my @angles = ( -360, -270, -180, -90, 0, 90, 180, 270, 360 );
my @deltas = ( -0.445, 0, 0.555    );
for my \$d (@deltas) {
for my \$a (@angles) {
my \$x = \$a+\$d;
my \$str = dec2degminsec(\$x);
my \$strll = ll2monkmap(\$x, \$x);
print "\$strll\n";
}
}
}

__END__

Author:    rudif@bluemail.ch
rudif@lecroy.com

46.20832     6.14296   <!-- Location:latitude=046.12.29,longitude=
+006.08.34-->

HTH
Rudif

Create A New User
Node Status?
node history
Node Type: note [id://51237]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others romping around the Monastery: (3)
As of 2021-01-16 01:03 GMT
Sections?
Information?
Find Nodes?
Leftovers?
Voting Booth?
The STEM quote I most wish I'd made is:

Results (153 votes). Check out past polls.

Notices?