[mapserver-users] mapscript php with agg rendering?

Jean-François Gigand jean-francois at gigand.fr
Tue Feb 15 11:29:18 EST 2011


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
>


More information about the mapserver-users mailing list