Printing (hi-res) and scaling, Lines and Symbols.

David Bitner osgis.lists at GMAIL.COM
Fri Feb 10 15:43:32 EST 2006


Bob --

This is what I do in PHP mapscript (I use FPDF to create a pdf with
the scaled image)


$scale=4;
$labelfudge=.5;
$stylefudge=.5;
$map->set('resolution',72*$scale);
$numLayers = $map->numlayers;
$classimages=array();
$classnames=array();
for ($i=0; $i < $numLayers; $i++) {
	$layer = $map->getlayer($i);
	if ($layer->status == 1 ){
	for ($j=0; $j < $layer->numclasses; $j++) {
		$class = $layer->getClass($j);
		$label = $class->label;
		if ($layer->type !=4){
			$classimageobj=$class->createLegendIcon(60,60);
			$classimages[]=$classimageobj->saveWebImage();
			$classnames[]=$class->name;
		}
		if ($label->mindistance>1){
			$md=$label->mindistance;
			$newmd=$md*$scale;
			$label->set('mindistance',$newmd);
		}
		if ($label->type == 'TRUETYPE') {
			$labelsize=$label->size;
			$newlabelsize=$labelsize*$scale*$labelfudge;
			$label->set('size',$newlabelsize);
		}
		for ($k=0; $k < $class->numstyles; $k++) {
			$style = $class->getStyle($k);
			$style->set("size", $style->size * $scale * $stylefudge);
			$style->set("offsetx", $style->offsetx * $scale);
			$style->set("offsety", $style->offsety * $scale);
		}
	}
	}
}

David

On 2/10/06, Bob Basques <bob.basques at ci.stpaul.mn.us> wrote:
> All,
>
> Any pointers on how to handle something like this.
>
> For example, any way to apply a global scale factor to  annotation in a
> mapfile in some form?  Just hoping.  :c)
>
> Do I need completly seperate MapFile for each Paper resolution I want to
> use?
>
> bobb
>



More information about the mapserver-users mailing list