[mapserver-users] mapscript php with agg rendering?

Michael Schulz mandschulz at googlemail.com
Tue Feb 15 11:50:39 EST 2011


Jean-Francois,

you saved my day :-) That got it working...

I definitely think there is something wrong when trying to create an
outputformat with php/mapscript from scratch. I'll try to narrow this
down a bit and maybe open the mentioned ticket again.

Thanks, Michael


2011/2/15 Jean-François Gigand <jean-francois at gigand.fr>:
> I had the same problem, with PHP MapScript.
>
> In my case, I needed to let MapServer handle the WMS request
> (msMap->owsDispatch() or CGI with generated MapFile), so I would have
> no control over the output format selection (which depends of the WMS
> request).
>
> It seemed that MapScript does not give control over the list of output formats.
>
> Eventually, as a workaround, I define my output formats as a map
> string and create the map object with ms_newMapObjFromString() rather
> than ms_newMapObj().
>
> Here is my code :
> --------------------
>    $formats = array
>      ('aggpng24' => array('driver' => 'AGG/PNG',
>                           'imagemode' => 'RGB',
>                           'mimetype' => 'image/png',
>                           'extension' => 'png'),
>       'aggjpeg' => array('driver' => 'AGG/JPEG',
>                          'imagemode' => 'RGB',
>                          'mimetype' => 'image/jpeg',
>                          'extension' => 'jpg'),
>       'gdtiff' => array('driver' => 'GDAL/GTiff',
>                         'imagemode' => 'RGB',
>                         'mimetype' => 'image/tiff',
>                         'extension' => 'tif'),
>       'gdgif' => array('driver' => 'GD/GIF',
>                        'imagemode' => 'PC256',
>                        'mimetype' => 'image/gif',
>                        'extension' => 'gif'),
>       );
>    $mapStrContent = array('MAP');
>    foreach ($formats as $name => $format) {
>      $mapStrContent[] = 'OUTPUTFORMAT';
>      $mapStrContent[] = 'NAME '.$name;
>      foreach ($format as $prop => $val) {
>        $mapStrContent[] = strtoupper($prop).' "'.$val.'"';
>      }
>      $mapStrContent[] = 'END';
>    }
>    $mapStrContent[] = 'END';
>    $msMap = ms_newMapObjFromString(implode("\n", $mapStrContent));
> --------------------
>
> To me, this is a bug, as I thought that anything definable in a map
> file should be definable thought MapScript as well.
> If there is a full MapScript solution for this need, I'm interested too.
>
>
> Jeff Gigand
>
>
> 2011/2/15 Gregor at HostGIS <gregor at hostgis.com>:
>> Hey there. I had some issues with the imagetype settings using PHP
>> MapScript, but we do use PNG24. For what it's worth, here's the outputformat
>> section of our PHP:
>>
>> $map->imagecolor->setRGB(255,255,255);
>> $map->outputformat->set('name','gif');
>> $map->outputformat->set('mimetype','image/png; mode=24bit');
>> $map->outputformat->set('driver','AGG/PNG');
>> $map->outputformat->set('imagemode',MS_IMAGEMODE_RGBA);
>> $map->outputformat->set('transparent',MS_OFF);
>> $map->outputformat->set('extension','png');
>> $map->outputformat->setOption('INTERLACE','OFF');
>> //$map->outputformat->setOption('QUANTIZE_FORCE','ON');
>> //$map->outputformat->setOption('QUANTIZE_COLORS',256);
>>
>> For reasons which now elude my memory (this was written some 3 years ago) we
>> had to use 'gif' as the output format, then simply reconfigure what 'gif'
>> means. This may have been a bug specific to our own version of MapServer
>> back in the day, but if it helps, I'm glad.
>>
>> --
>> HostGIS, Open Source solutions for the global GIS community
>> Greg Allensworth - SysAdmin, Programmer, GIS Person, Security
>>   Network+   Server+   A+   Security+   Linux+
>>   PHP   PostgreSQL   MySQL   DHTML/JavaScript/AJAX
>>
>> "No one cares if you can back up — only if you can recover."
>> _______________________________________________
>> mapserver-users mailing list
>> mapserver-users at lists.osgeo.org
>> http://lists.osgeo.org/mailman/listinfo/mapserver-users
>>
>



-- 
-----------------------------------------------------------
Michael Schulz

Christoph-Mang-Str. 5
D-79100 Freiburg


More information about the mapserver-users mailing list