[Mapserver-users] Drawing Lines - Perl

Sidnei de Souza sidnei at cria.org.br
Mon Jun 14 08:28:08 PDT 2004


Dear all,

I'm having a problem drawing lines on-the-fly with Perl mapscript and 
haven't found anything in the list archive that can help me.
I'm attaching a perl script that I think should work, but a blank image 
is produced.
I'm trying this in a RedHat Linux, with mapserver 4.2.0
If I change the layer and shape types to POLYGON instead of LINE, a 
correct polygon is produced.
Any help will be very welcome!
Thanks
sidnei

#!/usr/local/bin/perl

use mapscript;

$map = new mapscript::mapObj('') || die;
$map->setProjection('proj=longlat');


  $map->{width}  = 300;
  $map->{height} = 250;

  $map->{extent}->{minx} = -53.11;
  $map->{extent}->{maxx} = -44.16;
  $map->{extent}->{miny} = -25.30;
  $map->{extent}->{maxy} = -19.78;

  my $img = $map->prepareImage();

  my $point = new mapscript::pointObj();
  my $line  = new mapscript::lineObj();
  my $shape = new mapscript::shapeObj($mapscript::MS_SHAPE_LINE);

  my $layer = new mapscript::layerObj($map);
  $layer->{'type'} = $mapscript::MS_LAYER_LINE;
  $layer->{'name'} = 'myline';
  $layer->{'status'} = 1;

  $layer->setProjection('proj=longlat');

  my $class = new mapscript::classObj($layer);
  $class->{numstyles} = 1;

  $class->{name} = 'myclass';
  $class->{styles}->{symbol} = 0;
  $class->{styles}->{color}->{red} = -1;
  $class->{styles}->{color}->{green} = -1;
  $class->{styles}->{color}->{blue} = -1;

  $class->{styles}->{outlinecolor}->{red} = 255;
  $class->{styles}->{outlinecolor}->{green} = 0;
  $class->{styles}->{outlinecolor}->{blue} = 0;


  $class->{styles}->{'minsize'} = 2;
  $class->{styles}->{'maxsize'} = 20;
  $class->{styles}->{'size'} = 5;

  $point->{x} = -47.0608;
  $point->{y} = -22.9056;
  $line->add($point);

  $point->{x} = -45.65;
  $point->{y} = -24.55;
  $line->add($point);

  $point->{x} = -46.65;
  $point->{y} = -25.55;
  $line->add($point);

  $point->{x} = -47.0608;
  $point->{y} = -22.9056;
  $line->add($point);

  $shape->add($line);
  $shape->draw($map,$layer,$img);
  $layer->draw($map,$img);

  $img->save('myimage.png');



-- 
Sidnei de Souza
Diretor de Informática, CRIA

"Feliz aquele que transfere o que sabe e aprende o que ensina." [Cora Coralina]





More information about the MapServer-users mailing list