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
Posts are HTML formatted. Put <p> </p> tags around your paragraphs. Put <code> </code> tags around your code and data!
Titles consisting of a single word are discouraged, and in most cases are disallowed outright.
Read Where should I post X? if you're not absolutely sure you're posting in the right place.
Please read these before you post! —
Posts may use any of the Perl Monks Approved HTML tags:
- a, abbr, b, big, blockquote, br, caption, center, col, colgroup, dd, del, div, dl, dt, em, font, h1, h2, h3, h4, h5, h6, hr, i, ins, li, ol, p, pre, readmore, small, span, spoiler, strike, strong, sub, sup, table, tbody, td, tfoot, th, thead, tr, tt, u, ul, wbr
You may need to use entities for some characters, as follows. (Exception: Within code tags, you can put the characters literally.)
|
For: |
|
Use: |
| & | | & |
| < | | < |
| > | | > |
| [ | | [ |
| ] | | ] |
Link using PerlMonks shortcuts! What shortcuts can I use for linking?
See Writeup Formatting Tips and other pages linked from there for more info.
|
|