[mapserver-users] querying map to database and displaying the requested map using php mapscript
aditigroup project
aditi.kolstudygroup at gmail.com
Fri Mar 27 07:13:01 PDT 2009
Hello,
I am trying to query map in the datatbase(postgres)and display the map as
requested by the user.For e.g.If user gives an area say "goa" to search then
we have to display the map of "goa".
I can retrieve "goa" from the database.But we are not getting how to
generate the map of goa and display it dynamically.How to do this? Please
help.
In our map file:
QUERYMAP
SIZE 200 150
STATUS ON
STYLE HILITE # SELECTED | NORMAL
COLOR 255 0 0
END
our php file contains the following code:
<?php
dl('php_mapscript.so');
dl('php_pgsql.so');
// Default values and configuration
$var1=$_POST["v1"];
*$src=$_POST["srch"];*
$ss="";
$con= pg_connect("host=localhost password=mapserver user=postgres
dbname=postgres port=5432");
if (!$con) {
echo("Connection Failed........");
}
else
{
echo("con est");
}
if($var1=="on")
{
$ss="MS_ON";
}
else
{
$ss="MS_OFF";
}
echo $ss;
$val_zsize=3;
$check_pan="CHECKED";
$map_path="/opt/fgs/www/htdocs/";
$map_file="global.map";
$map = ms_newMapObj($map_path.$map_file);
$layer = ms_newLayerObj($map);
$layerobj=$map->getLayerByName('INDIA_DIS');
$status = $layerobj->open();
$projInObj = ms_newprojectionobj("proj=latlong");
$projOutObj = ms_newprojectionobj("init=epsg:4326");
//$projOutObj = ms_newprojectionobj("init=epsg:4326");
$poPoint = ms_newpointobj();
$poPoint->setXY(-92.0, 62.0);
$poPoint->project($projInObj, $projOutObj);
$layerobj->set("status",MS_ON);
*$result = pg_query($con, "select state from india_st where state='$src'");*
if (!$result) {
echo "An error occured.\n";
exit;
}
* $row = pg_fetch_row($result);
echo $row[0];
*
function setExtent($map)
{
$mapext = $_GET['mapext'];
$mapext = explode(' ', $mapext);
$extent['min']['x'] = floatval($mapext[0]);
$extent['min']['y'] = floatval($mapext[1]);
$extent['max']['x'] = floatval($mapext[2]);
$extent['max']['y'] = floatval($mapext[3]);
$map->setExtent($extent['min']['x']
,$extent['min']['y']
,$extent['max']['x']
,$extent['max']['y']
);
}
if ( isset($HTTP_POST_VARS["mapa_x"]) && isset($HTTP_POST_VARS["mapa_y"])
&& !isset($HTTP_POST_VARS["full"]) ) {
$extent_to_set = explode(" ",$HTTP_POST_VARS["extent"]);
$map->setextent($extent_to_set[0],$extent_to_set[1],
$extent_to_set[2],$extent_to_set[3]);
$my_point = ms_newpointObj();
$my_point->setXY($HTTP_POST_VARS["mapa_x"],$HTTP_POST_VARS["mapa_y"]);
$my_extent = ms_newrectObj();
$my_extent->setextent($extent_to_set[0],$extent_to_set[1],$extent_to_set[2],$extent_to_set[3]);
$zoom_factor = $HTTP_POST_VARS["zoom"]*$HTTP_POST_VARS["zsize"];
if ($zoom_factor == 0) {
$zoom_factor = 1;
$check_pan = "CHECKED";
$check_zout = "";
$check_zin = "";
} else if ($zoom_factor < 0) {
$check_pan = "";
$check_zout = "CHECKED";
$check_zin = "";
} else {
$check_pan = "";
$check_zout = "";
$check_zin = "CHECKED";
}
$val_zsize = abs($zoom_factor);
$map->zoompoint($zoom_factor,$my_point,$map->width,$map->height,
$my_extent);
*if($src)
{
$image=$map->drawQuery();
}
else
{
$image=$map->draw();
}*
$image_url=$image->saveWebImage();
$extent_to_html = $map->extent->minx." ".$map->extent->miny." "
.$map->extent->maxx." ".$map->extent->maxy;
$layerobj->draw($image);
?>
<HTML>
<HEAD>
<TITLE>Map 2</TITLE>
</HEAD>
<BODY>
<CENTER>
<FORM METHOD=POST ACTION=<?php echo $HTTP_SERVER_VARS['PHP_SELF']?>>
<TABLE>
<TR>
<TD>
<INPUT TYPE=IMAGE NAME="mapa" SRC="<?php echo $image_url?>">
</TD>
</TR>
<TR>
<TD>
Pan
</TD>
<TD>
<INPUT TYPE=RADIO NAME="zoom" VALUE=0 <?php echo $check_pan?>>
</TD>
</TR>
<TR>
<TD>
Zoom In
</TD>
<TD>
<INPUT TYPE=RADIO NAME="zoom" VALUE=1 <?php echo $check_zin?>>
</TD>
</TR>
<TR>
<TD>
Zoom Out
</TD>
<TD>
<INPUT TYPE=RADIO NAME="zoom" VALUE=-1 <?php echo
$check_zout?>>
</TD>
</TR>
<TR>
<TD>
Zoom Size
</TD>
<TD>
<INPUT TYPE=TEXT NAME="zsize" VALUE="<?php echo $val_zsize?>"
SIZE=2>
</TD>
<TD>
<INPUT TYPE=radio NAME="query" SIZE=2 VALUE=1>
</TD>
</TR>
<TR>
<TD>
Full Extent
</TD>
<TD><INPUT TYPE=CHECKBOX NAME="v1" VALUE="on" SIZE=2></TD>
<TD>
<INPUT TYPE=SUBMIT NAME="full" VALUE="Go"
SIZE=2>
</TD>
</TR>
<TR>
<TD> LAYER INDIA</TD>
</TR>
<tr>
<td>
search
</td>
<TD>
*<INPUT TYPE=TEXT NAME="srch" SIZE=10> *
</TD>
</tr>
</TABLE>
<INPUT TYPE=HIDDEN NAME="extent" VALUE="<?php echo $extent_to_html?>">
</FORM>
</CENTER>
</BODY>
</HMTL>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.osgeo.org/pipermail/mapserver-users/attachments/20090327/53862285/attachment.htm>
More information about the MapServer-users
mailing list