Annotation of register/prgsrc/updatemap.pl, revision 1.2
1.1 boris 1: #!/usr/bin/perl
2:
3: =pod
4:
5: =head1 NAME
6:
7: updatemap.pl - update map of regions for Club register
8:
9: =head1 SYNOPSIS
10:
11: updatemap.pl
12:
13: =head1 DESCRIPTION
14:
15: The script searches for latitudes and longitudes of CHGK regions
16: and outputs them superimposed on the world map. The world map
17: is taken from the gnuplot distribution. Then the script outputs
18: an include file for register.cgi(1)
19:
20: =head1 AUTHOR
21:
22: Boris Veytsman
23:
24: =head1 DATE
25:
1.2 ! boris 26: $Date: 2001/10/13 21:48:05 $
1.1 boris 27:
28: =head1 REVISION
29:
1.2 ! boris 30: $Revision: 1.1 $
1.1 boris 31:
32: =cut
1.2 ! boris 33:
! 34: use strict;
! 35: use DBI;
! 36: my $dbh;
! 37: $dbh = DBI->connect("DBI:mysql:chgk", "piataev", "") or
! 38: die ($dbh->errstr);
! 39: my $width=640;
! 40: my $height=320;
! 41: my $offset=160;
! 42: #######################################################
! 43: # Opening the files
! 44: #######################################################
! 45: open (INCLUDE, ">regions.html");
! 46: open (GNU, ">regions.gnu");
! 47: open (DAT, ">regions.dat");
! 48:
! 49: print GNU <<END;
! 50: set term png medium color
! 51: set ou "regions.png"
! 52: set noborder
! 53: set nokey
! 54: set size ratio 0.5 1, 1
! 55: set tmargin 0
! 56: set bmargin 0
! 57: set lmargin 0
! 58: set rmargin 0
! 59: set noyzeroaxis
! 60: set noxtics
! 61: set noytics
! 62: set xrange [-180:180]
! 63: set yrange [-90:90]
! 64: END
! 65: print INCLUDE <<END;
! 66: <map name="regions">
! 67: END
! 68:
! 69: ##########################################################
! 70: # Writing clubs coordinates
! 71: ##########################################################
! 72:
! 73: my $sth = $dbh->prepare ("
! 74: SELECT rid,Name,Lon,Lat from Regions
! 75: where NOT ISNULL(Lat) and NOT ISNULL(Lon)");
! 76: $sth->execute;
! 77: while (my ($rid,$Name,$Lon,$Lat) = $sth->fetchrow_array) {
! 78: print DAT <<END;
! 79: $Lon, $Lat
! 80: END
! 81: my $x=int($width*($Lon+180)/360);
! 82: my $y=int($height*(90-$Lat)/180);
! 83: print INCLUDE <<END;
! 84: <area shape="circle" coords="$x, $y, 3"
! 85: href="/znatoki/cgi-bin/register.cgi?rid=$rid&clubs=1&level=10000"
! 86: alt="$Name">
! 87: END
! 88: }
! 89:
! 90: ##########################################################
! 91: # Finishing up
! 92: ##########################################################
! 93: print INCLUDE <<END;
! 94: </map>
! 95: <img usemap="#regions" src="../images/regions.gif"
! 96: alt="Карта клубов" width=$width height=$height>
! 97: END
! 98: print GNU <<END;
! 99: plot 'world.dat' with lines 3 4, 'regions.dat' with points 1
! 100: END
! 101: close GNU;
! 102: close INCLUDE;
! 103: close DAT;
! 104: `gnuplot regions.gnu`;
! 105: my $dim=$width.'x'.$height.'+0+'.$offset;
! 106: `convert -crop $dim regions.png gif:regions.tmp`;
! 107: `giftrans -t '#ffffff' regions.tmp> regions.gif`;
! 108: exit 0;
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>