Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- use DBI;
- use mapscript;
- my $map = new mapscript::mapObj() or warn "error: $mapscript::ms_error->{message}\n";
- $map->{name} = 'mymap';
- $map->{status} = $mapscript::MS_ON;
- $map->{units} = $mapscript::MS_DD;
- $map->setImageType('png');
- my $imageColor = new mapscript::colorObj;
- $imageColor->setHex('#FFFFFF');
- $map->{imagecolor} = $imageColor;
- $map->setSize(1200, 600);
- $map->setExtent(-180, -90, 180, 90);
- $map->selectOutputFormat('png');
- $map->setProjection("proj=latlong");
- my $outputFormatObj = new mapscript::outputFormatObj('AGG/PNG');
- $outputFormatObj->setExtension('png');
- $outputFormatObj->setMimetype('image/png');
- $outputFormatObj->{imagemode} = $mapscript::MS_IMAGEMODE_RGB;
- $map->setOutputFormat( $outputFormatObj );
- my $layerOne = new mapscript::layerObj($map);
- $layerOne->{name} = "layer one";
- $layerOne->{status} = $mapscript::MS_ON;
- $layerOne->{type} = $mapscript::MS_LAYER_POLYGON;
- $layerOne->{opacity} = 100;
- $layerOne->{connection} = 'host=localhost port=5432 dbname=mydb user=dbuser password=dbpasswd';
- $layerOne->setConnectionType($mapscript::MS_POSTGIS, '');
- $layerOne->{data} = 'the_geom FROM (SELECT class_name, the_geom FROM t1) a_view USING UNIQUE gid USING srid=-1';
- $layerOne->{classitem} = 'class_name';
- $layerOne->setProjection("proj=latlong");
- my $classOutlineColor = new mapscript::colorObj;
- $classOutlineColor->setHex('#444444');
- my $sth = database->prepare('SELECT class_name, class_color FROM t2');
- $sth->execute;
- while (my ($class_name, $class_color) = $sth->fetchrow_array) {
- my $classObj = new mapscript::classObj($layerOne);
- $classObj->{name} = $class_name;
- $classObj->setExpression("$class_name");
- my $classFillColor = new mapscript::colorObj;
- $classFillColor->setHex($class_color);
- my $styleObj = new mapscript::styleObj($classObj);
- $styleObj->{color} = $classFillColor;
- $styleObj->{outlinecolor} = $classOutlineColor;
- }
- $sth->finish;
- my $req = new mapscript::OWSRequest();
- $req->setParameter( "SERVICE", "WMS" );
- $req->setParameter( "VERSION", "1.1.0" );
- $req->setParameter( "REQUEST", "GetMap" );
- $req->setParameter( "BBOX", "-173.537,35.8775,-11.9603,83.8009" );
- $req->setParameter( "LAYERS", "layer one");
- $req->setParameter( "SRS", "-1");
- $req->setParameter( "WIDTH", "1200");
- $req->setParameter( "HEIGHT", "600");
- my $io = mapscript::msIO_installStdoutToBuffer();
- my $dispatch_out = $map->OWSDispatch( $req );
- printf "%s\n", mapscript::msIO_getStdoutBufferString();
Advertisement
Add Comment
Please, Sign In to add comment