[ka-Map-users] printing maps with added objects & printing
transparent layers
Lorenzo Becchi
lorenzo at ominiverdi.com
Fri Sep 1 08:40:30 EDT 2006
Donal thanks for your code. I've put it on CVS but with some changes.
Why have you changed this line?
header("Content-Disposition: attachment; filename=\"".$oMap-
>name.".tiff\"");
in this:
header("Content-Disposition: attachment; filename=".$oMap-
>name.".tiff");
and why this:
header("Content-Disposition: attachment; filename=\"".$oMap-
>name.".".strtolower($_REQUEST['output_type'])."\"");
in this:
header("Content-Disposition: attachment; filename=".$oMap->name.".".
$_REQUEST['output_type']);
All that strange syntax was granting some compatibility with
filenames with all browsers in windows and mac.
I suggest you to put it on again.
and why did you skipped
location.href='tools/print/print_map.php?'+params;
using the old winOpener ?
I know there's not a perfect solution, I'm interested in your opinion.
Testing the new solution I've found another limitation of my code: if
you move layers up and down the printed map is maintaining the
orginal disposition.
This means looping layers inside a new loop of "group" array caching
correspondences.
Do you want to do this too?
I've put your name in the code. Update from CVS.
ciao
Lorenzo
ps: please if you don't want to use a line of code leave it commented
in your new code so I can understand quickly what you've change
without looking for diffs.
On 01/set/06, at 04:13, Donal Regan wrote:
> Lorenzo,
>
> I have attached a copy of print_map.php that now takes into account
> layer opacity. The changes to the javascript function myPrint() are
> shown down below.
> I took on board what you suggested so print_map.php now checks for
> opacitys in the querystring:
>
>
> if (isset($_REQUEST['opacitys']))$opacitys=$_REQUEST['opacitys'];
> else $opacitys="";
> $aOpacity=explode(',',$opacitys);
>
>
> and while looping through the layers we can now do the following
>
> elseif (in_array($oLayer->group,$aGroup)){
> $oLayer->set('status',MS_ON);
> $opacity = $aOpacity[array_search($oLayer->group,
> $aGroup)];
> if($opacity!='')$oLayer->set('transparency',$opacity);
> if(!$oLayer->isVisible() && ($oLayer->minscale <
> $scale && $oLayer->maxscale > $scale )){
> $oLayer->set("minscale",0);
> $oLayer->set("maxscale",(200000000)); // has to be
> greater that map maximum scale
> }
> }
>
> The myPrint() function should now look like the following
>
> function myPrint() {
> var szLayers = '';
> var szOpacitys = '';
>
> var layers = myKaMap.getCurrentMap().getLayers();
> for (var i=0;i<layers.length;i++) {
> szLayers = szLayers + "," + layers[i].name;
> szOpacitys = szOpacitys + "," + layers[i].opacity;
> }
>
> var extent = myKaMap.getGeoExtents();
> var scale = myKaMap.getCurrentScale();
> var cMap = myKaMap.getCurrentMap().name;
>
> var img_width = '600';// pixel dimension. max_img_width set
> inside print_map.php
> var params='map='+cMap+'&scale='+scale+'&img_width='+img_width
> +'&groups='+szLayers+"&opacitys="+szOpacitys+'&extent='+extent[0]
> +'|'+extent[1]+'|'+extent[2]+'|'+extent[3];
>
> WOOpenWin( 'Print', '../tools/print/print_map.php?'+params,
> 'resizable=yes,scrollbars=yes,width=600,height=400' );
>
> }
>
>
> The code works for me on Windows 2000, IE6 and Firefox 1.5.06.
>
> Cheers.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.maptools.org/pipermail/ka-map-users/attachments/20060901/6a43b3e1/attachment.html
More information about the ka-Map-users
mailing list