Wikipedia:WikiProject Geographical coordinates/Script
Appearance
#!/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 * ((abs $latmindec) - $latminabs); $lonsecdec = 60.0 * ((abs $lonmindec) - $lonminabs); } 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;