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>