Jump to content

Wikipedia:WikiProject Geographical coordinates/Script

From Wikipedia, the free encyclopedia
This is an old revision of this page, as edited by Egil (talk | contribs) at 12:24, 14 February 2005 (bugfix). The present address (URL) is a permanent link to this revision, which may differ significantly from the current revision.
#!/usr/bin/perl

use CGI qw(:standard);

$page = `wget -q -O- "http://en.wikipedia.org/wiki/Wikipedia:Map_sources"`;

$latdegdec = param('latdeg');
$londegdec = param('londeg');
$latmindec = param('latmin');
$lonmindec = param('lonmin');
$latsecdec = param('latsec');
$lonsecdec = param('lonsec');
$zoom = param('zoom');

$latdegint = int $latdegdec;
$londegint = int $londegdec;
$latdegabs = abs $latdegint;
$londegabs = abs $londegint;

if ($latdegdec < 0) {
    $latNS = "S";
} else {
    $latNS = "N";
}
if ($londegdec < 0) {
    $lonEW = "W";
} else {
    $lonEW = "E";
}

if ($latsecdec eq "") {
    # Seconds not stated, must be decimal minutes
    $latsecdec = 60.0 * (($latmindec) - int $latmindec);
    $lonsecdec = 60.0 * (($lonmindec) - int $lonmindec);
} else {
    # Seconds stated, make decimal minutes
    $latmindec += $latsecdec/60.0;
    $lonmindec += $lonsecdec/60.0;
}

if ($latmindec eq "") {
    # Minutes not stated, must be decimal degrees
    $latmindec = 60.0 * ((abs $latdegdec) - $latdegabs);
    $lonmindec = 60.0 * ((abs $londegdec) - $londegabs);
} else {
    # Minutes stated, make decimal degrees
    if ($latdegdec < 0) {
        $latdegdec -= $latmindec/60.0;
    } else {
        $latdegdec += $latmindec/60.0;
    }
    if ($londegdec < 0) {
        $londegdec -= $lonmindec/60.0;
    } else {
        $londegdec += $lonmindec/60.0;
    }
}

$londegneg = -$londegdec;
$latminint = int $latmindec;
$lonminint = int $lonmindec;
$latsecint = int $latsecdec;
$lonsecint = int $lonsecdec;

#
# Do replacements in the page
#
$page =~ s/{{{latdegdec}}}/$latdegdec/g;
$page =~ s/{{{londegdec}}}/$londegdec/g;
$page =~ s/{{{londegneg}}}/-$londegdec/g;
$page =~ s/{{{latmindec}}}/$latmindec/g;
$page =~ s/{{{lonmindec}}}/$lonmindec/g;
$page =~ s/{{{latsecdec}}}/$latsecdec/g;
$page =~ s/{{{lonsecdec}}}/$lonsecdec/g;
$page =~ s/{{{latdegint}}}/$latdegint/g;
$page =~ s/{{{londegint}}}/$londegint/g;
$page =~ s/{{{latdegabs}}}/$latdegabs/g;
$page =~ s/{{{londegabs}}}/$londegabs/g;
$page =~ s/{{{latminint}}}/$latminint/g;
$page =~ s/{{{lonminint}}}/$lonminint/g;
$page =~ s/{{{latsecint}}}/$latsecint/g;
$page =~ s/{{{lonsecint}}}/$lonsecint/g;
$page =~ s/{{{latNS}}}/$latNS/g;
$page =~ s/{{{lonEW}}}/$lonEW/g;
$page =~ s/{{{zoom}}}/$zoom/g;

#
# NOTE: these lines are for the demo on the external server
#
$page =~ s/<span/<!-- /g;
$page =~ s/\/span>/-->/g;
$page =~ s/href=\"\/w/href=\"http:\/\/en.wikipedia.org\/w/g;

#
# Output our findings
#
print "Content-Type: text/html; charset=iso-8859-1\n\n";
print $page;

exit;