[mapserver-users] querying map to database and displaying the requested map using php mapscript

aditigroup project aditi.kolstudygroup at gmail.com
Fri Mar 27 10:13:01 EDT 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.html


More information about the mapserver-users mailing list