[ka-Map-users] Ka-map and AGG + Alpha? - Solved (need confirm)
Sacha Black
sacha.black at gmail.com
Mon Mar 10 22:12:56 EDT 2008
Hans, Zak, Paul, Lorenzo,
Thanks for your comments - think I finally got the AGG + Alpha (AGGA)
option to work. Hans maybe you can test the below and confirm?
I hope it works for you....
Sacha
+++++++++
[After Zak's last comment I realized that Paul's suggested code was
not being executed in tile.php, because the condition "if
($useAlphaCh)" was never true, after that was fixed, everything
worked]
here is the full set of what worked for me (the bottom 2 changes were
the final key):
///////////////// in the .map file: /////////////////
OUTPUTFORMAT
NAME 'AGGA'
DRIVER AGG/PNG
IMAGEMODE RGBA
# FORMATOPTION "TRANSPARENT=ON"
END
and also for the relevant LAYER:
LAYER
METADATA
"IMAGEFORMAT" "AGGA"
END
....
END
/////// in config php (around line 105): /////////////////
$aszGMap = array (
'title' => 'GMap 75',
'path' => '../../gmap/htdocs/gmap_AGGA.map',
'scales' => array( 40000000, 25000000, 12000000, 7500000,
3000000, 1000000 ),
'format' =>'PNG' /// <!-- doesn't seem to have an effect -->
);
and (around line 210):
case "AGGA":
$GLOBALS['szMapImageFormat'] = 'AGGA';
$GLOBALS['szMapImageCreateFunction'] = "imagecreatefrompng";
$GLOBALS['szImageExtension'] = '.png';
$GLOBALS['szImageCreateFunction'] = "imagecreatetruecolor";
$GLOBALS['szImageOutputFunction'] = "imagepng";
$GLOBALS['szImageHeader'] = 'image/png';
break;
/////// in tile.php (around line 85): /////////////////
$useAlphaCh = false;
if (isset($_REQUEST['i'])) {
setOutputFormat( $_REQUEST['i'] );
if (strtoupper($_REQUEST['i']) == 'ALPHA') {
$useAlphaCh = true;
}
elseif (strtoupper($_REQUEST['i']) == 'AGGA') { /// <-- also use
AlphaCh if AGGA
$useAlphaCh = true;
}
}
and lastly the fix from Paul (around line 315):
if ($useAlphaCh) {
imageAlphaBlending($oTile, false);
imagefill($oTile, 0, 0, imagecolorallocatealpha($oTile, 0, 0, 0, 127));
imageSaveAlpha($oTile, true);
}
More information about the ka-Map-users
mailing list