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();
?>
PHP MapScript example: Display the map
>
===== Build a map from scratch =====
See [[http://www.rigacci.org/wiki/doku.php/tecnica/gps_cartografia_gis/mapserver#php-mapscript|this example]].
===== 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.
drawLegend();
if ($inline) {
header('Content-Type: image/png');
$legend_image->saveImage('');
exit;
}
$image_url = $legend_image->saveWebImage();
?>
PHP MapScript example: Display the legend
>
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.
===== Make a query =====
Open an existing map file and perform a **query by rectangle** on a layer, print results with a **template**.
setextent(1681023, 4850413, 1681906, 4851167);
$map->queryByRect($selrect);
$buffer = $map->processquerytemplate(array(), false);
print "\n";
print $buffer;
print "
\n";
?>
The **''$buffer''** variable contains one template instance for each record.
The querable layer is definend in the ''**MAP.LAYER**'' section, and it requires a query template:
[item name=objectid] [item name=field1] [item name=field2]
This example does not use the template, it **iterates through the query results**:
setextent(1681023.81515592, 4850413.68207817, 1681906.91185973, 4851167.76185515);
$map->queryByRect($selrect);
$layer = $map->getLayerByName('layer_name');
$count = $layer->getNumResults();
print "Query result count: " . $count . "
\n";
print "\n";
for ($i = 0; $i < $count; $i++) {
$qRes = $layer->getResult($i);
print_r($qRes);
}
print "
\n";
?>