Sophie

Sophie

distrib > Fedora > 14 > i386 > by-pkgid > d56e2615a43e036877e0b6cfab8e0892 > files > 520

fldigi-doc-3.20-3.fc14.noarch.rpm

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html><head><meta content="text/html; charset=ISO-8859-1" http-equiv="content-type"><title>GoogleEarth Map</title></head>
<body><h1>Google Map</h1>snip ------------ copy the following to ~/.fldigi/scripts/map.pl<br><br>#!/usr/bin/perl<br><br># Author: Stelios Bounanos, M0GLD<br># Date:&nbsp;&nbsp; 20080625<br><br>use warnings;<br>use strict;<br>use Getopt::Std;<br><br>our $VERSION = "0.3141";<br>our %opts = ( "e" =&gt; 0, "m" =&gt; 1, "z" =&gt; 4);<br><br>cmdline();<br>open(STDOUT, '&gt;', "/dev/null");<br><br>my $loc = exists($opts{'l'}) ? $opts{'l'} : $ENV{'FLDIGI_LOG_LOCATOR'};<br>die "Invalid locator\n" unless ((defined($loc) &amp;&amp; length($loc) =~ /[2-6]/));<br><br>my $label = exists($opts{'t'}) ? $opts{'t'} : $ENV{'FLDIGI_LOG_CALL'};<br>$label = $loc if (!defined($label) || $label eq "");<br><br>my ($lon, $lat) = map { sprintf("%+.6f", $_) } mtoll($loc);<br>if ($opts{'m'}) {<br>&nbsp;&nbsp;&nbsp; my $url = "http://maps.google.com/maps?q=${lat},${lon}(${label})&amp;t=p&amp;z=$opts{'z'}";<br>#&nbsp;&nbsp;&nbsp; $url =~ s/([(),])/sprintf("%%%02X", ord($1))/ge; # encode some chars<br>&nbsp;&nbsp;&nbsp; exec("xdg-open", $url);<br>&nbsp;&nbsp;&nbsp; die "Could not exec xdg-open: $!\n";<br>}<br><br>exit(0) unless ($opts{'e'});<br>my $kml = (exists($ENV{'TMPDIR'}) ? $ENV{'TMPDIR'} : "/tmp") .<br>&nbsp;&nbsp;&nbsp; "/" . $loc . ".kml";<br>open(KML, '&gt;', $kml) or die "Could not write $kml: $!\n";<br>print KML &lt;&lt;EOF<br>&lt;?xml version="1.0" encoding="UTF-8"?&gt;<br>&lt;kml xmlns="http://earth.google.com/kml/2.2"&gt;<br>&nbsp; &lt;Placemark&gt;<br>&nbsp;&nbsp;&nbsp; &lt;name&gt;$label&lt;/name&gt;<br>&nbsp;&nbsp;&nbsp; &lt;description&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $label<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $loc<br>&nbsp;&nbsp;&nbsp; &lt;/description&gt;<br>&nbsp;&nbsp;&nbsp; &lt;Point&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;coordinates&gt;$lon,$lat,0&lt;/coordinates&gt;<br>&nbsp;&nbsp;&nbsp; &lt;/Point&gt;<br>&nbsp; &lt;/Placemark&gt;<br>&lt;/kml&gt;<br>EOF<br>&nbsp;&nbsp;&nbsp; ;<br>close(KML);<br><br>########################################################################<br><br>sub cmdline<br>{<br>&nbsp;&nbsp;&nbsp; $Getopt::Std::STANDARD_HELP_VERSION = 1;<br>&nbsp;&nbsp;&nbsp; my $old_warn_handler = $SIG{__WARN__};<br>&nbsp;&nbsp;&nbsp; $SIG{__WARN__} = sub { die $_[0]; };<br>&nbsp;&nbsp;&nbsp; getopts('t:l:mz:e', \%opts);<br>&nbsp;&nbsp;&nbsp; $SIG{__WARN__} = $old_warn_handler;<br>}<br><br><br># Convert a 2, 4, or 6-character Maidenhead locator string<br># to decimal degrees. Return a (longitude, latitude) pair.<br>sub mtoll<br>{<br>&nbsp;&nbsp;&nbsp; my $len = length($_[0]);<br>&nbsp;&nbsp;&nbsp; $_[0] .= join("", ("A", "A", "0", "0", "A", "A")[$len .. 5]) if ($len &lt; 6);<br>&nbsp;&nbsp;&nbsp; $_[0] = uc($_[0]);<br>&nbsp;&nbsp;&nbsp; die "Invalid locator\n" unless ($_[0] =~ /[A-R]{2}\d{2}[A-X]{2}/);<br><br>&nbsp;&nbsp;&nbsp; my @digits = split(//, $_[0]);<br>&nbsp;&nbsp;&nbsp; my ($lon, $lat) = (-180, -90);<br><br>&nbsp;&nbsp;&nbsp; $lon += (ord($digits[0]) - ord('A')) * 20 +<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (ord($digits[2]) - ord('0')) * 2 +<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (ord($digits[4]) - ord('A') + 0.5) / 12;<br>&nbsp;&nbsp;&nbsp; $lat += (ord($digits[1]) - ord('A')) * 10 +<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (ord($digits[3]) - ord('0')) +<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (ord($digits[5]) - ord('A') + 0.5) / 24;<br><br>&nbsp;&nbsp;&nbsp; return ($lon, $lat);<br>}<br><br>sub HELP_MESSAGE<br>{<br>print &lt;&lt;EOF<br><br>Usage: $0 [-OPTIONS [-MORE_OPTIONS]] [--] [PROGRAM_ARG1 ...]<br><br>The following single-character options are accepted:<br><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; -t LABEL&nbsp; Use LABEL as the marker label<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
The default is \$FLDIGI_LOG_CALL<br><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; -l LOC&nbsp;&nbsp;&nbsp; Place marker at IARU locator LOC<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
The default is \$FLDIGI_LOG_LOCATOR<br><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; -m&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Show in Google Maps (default)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; -z&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Zoom level (Google Maps only)<br><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; -e&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Write a Google Earth kml file in<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; \$TMPDIR/LOC.kml<br>EOF<br>;<br>}<br><br>snip------------------------------------------------<br></body></html>