Beefy Boxes and Bandwidth Generously Provided by pair Networks
Clear questions and runnable code
get the best and fastest answer
 
PerlMonks  

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


Comment on Re: Put yourself on the Monk Map
Download Code

Log In?
Username:
Password:

What's my password?
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 chanting in the Monastery: (13)
As of 2014-07-23 18:10 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    My favorite superfluous repetitious redundant duplicative phrase is:









    Results (148 votes), past polls