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