User Tools

Site Tools


tecnica:gps_cartografia_gis:php_mapscript_recipes

This is an old revision of the document!


PHP MapScript Recipes

Return a map image from a map file

We can build an image from a working map file. Here we just turn on one layer, setting its status to DEFAULT:

<?php
// PHP MapScript example.
// Display a map as an inline image or embedded into an HTML page.
$inline = true;
$map_path = '/var/www/mapfiles/';
$mapfile = 'file.map';
$map = ms_newMapObj($map_path . $mapfile);
$layer = $map->getLayerByName('layer_name');
$layer->set('status', MS_DEFAULT);
$map_image = $map->draw();
if ($inline) {
    header('Content-Type: image/png');
    $map_image->saveImage('');
    exit;
}
$image_url = $map_image->saveWebImage();
?>
<HTML>
<HEAD>
<TITLE>PHP MapScript example: Display the map</TITLE>
</HEAD>
<BODY>
<IMG SRC=<?php echo $image_url; ?> >
</BODY>
</HTML>

Build a map from scratch

Generate the legend image

We need a mapfile with all the necessary to display the legend.

We can return just the legend image via PHP code. The image can be served as an inline image or as a web image from the temporary directory.

<?php
// PHP MapScript example.
// Display a map legend as an inline image or embedded into an HTML page.
$inline = true;
$map_path='/var/www/mapfiles/';
$mapfile = $_REQUEST['mapfile'];
$map = ms_newMapObj($map_path . $mapfile);
$legend_image = $map->drawLegend();
if ($inline) {
    header('Content-Type: image/png');
    $legend_image->saveImage('');
    exit;
}
$image_url = $legend_image->saveWebImage();
?>
<HTML>
<HEAD>
<TITLE>PHP MapScript example: Display the legend</TITLE>
</HEAD>
<BODY>
<IMG SRC=<?php echo $image_url; ?> >
</BODY>
</HTML>

The mapfile requires all the relevant entries, among them: MAP.FONTSET, MAP.WEB.IMAGEPATH, MAP.WEB.IMAGEURL, MAP.LEGEND.

For inline images you can omit web paths, because no temporary images will be created.

tecnica/gps_cartografia_gis/php_mapscript_recipes.1264796291.txt.gz · Last modified: 2010/01/29 21:18 by niccolo