"be consistent" 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

Create A New User
Domain Nodelet?
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: (3)
As of 2022-05-27 23:09 GMT
Sections?
Information?
Find Nodes?
Leftovers?
Voting Booth?
Do you prefer to work remotely?

Results (98 votes). Check out past polls.

Notices?