[Mapserver-users] dynamic point generation with php-mapscript

Van Ulden, Joost jvanulde at nrcan.gc.ca
Thu Apr 3 13:52:46 EST 2003


This message is in MIME format. Since your mail reader does not understand
this format, some or all of this message may not be legible.

------_=_NextPart_000_01C2FA12.37357200
Content-Type: multipart/alternative;
	boundary="----_=_NextPart_001_01C2FA12.37357200"


------_=_NextPart_001_01C2FA12.37357200
Content-Type: text/plain;
	charset="iso-8859-1"

Hello Paul, I have attached a template where I do just what you asked for.
Please contact me if you have any questions.
 
Regards,
 
Joost van Ulden

-----Original Message-----
From: Dan Barron [mailto:dbarron at ddive.com]
Sent: Thursday, April 03, 2003 8:45 AM
To: Paul Dymecki; MapServer List (E-mail)
Subject: Re: [Mapserver-users] dynamic point generation with php-mapscript


You can create a dummy point layer in your map file, then in php query the
database for your points, create new point objects using ms_newPointObj(),
set the XY coordinates, and draw the point on the layer.  If you want some
specific code examples, I can send along snippet.

Dan

At 11:07 AM 4/3/2003 -0500, Paul Dymecki wrote:


Content-Transfer-Encoding: 7bit

Hi,
I was wondering if anyone would know some good examples of generateing
dynamic points with php mapscript?  Ie just pulling from points from a
database and displaying them without a shape file?
any hints would be apprcited,
thanks,
Paul


------_=_NextPart_001_01C2FA12.37357200
Content-Type: text/html;
	charset="iso-8859-1"

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML><HEAD>
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">


<META content="MSHTML 6.00.2800.1141" name=GENERATOR></HEAD>
<BODY>
<DIV><SPAN class=545215118-03042003><FONT face=Arial color=#0000ff size=2>Hello 
Paul, I have attached a template where I do just what you asked for.&nbsp; 
Please contact me if you have any questions.</FONT></SPAN></DIV>
<DIV><SPAN class=545215118-03042003><FONT face=Arial color=#0000ff 
size=2></FONT></SPAN>&nbsp;</DIV>
<DIV><SPAN class=545215118-03042003><FONT face=Arial color=#0000ff 
size=2>Regards,</FONT></SPAN></DIV>
<DIV><SPAN class=545215118-03042003><FONT face=Arial color=#0000ff 
size=2></FONT></SPAN>&nbsp;</DIV>
<DIV><SPAN class=545215118-03042003><FONT face=Arial color=#0000ff size=2>Joost 
van Ulden</FONT></SPAN></DIV>
<BLOCKQUOTE dir=ltr style="MARGIN-RIGHT: 0px">
  <DIV class=OutlookMessageHeader dir=ltr align=left><FONT face=Tahoma 
  size=2>-----Original Message-----<BR><B>From:</B> Dan Barron 
  [mailto:dbarron at ddive.com]<BR><B>Sent:</B> Thursday, April 03, 2003 8:45 
  AM<BR><B>To:</B> Paul Dymecki; MapServer List (E-mail)<BR><B>Subject:</B> Re: 
  [Mapserver-users] dynamic point generation with 
  php-mapscript<BR><BR></FONT></DIV>You can create a dummy point layer in your 
  map file, then in php query the database for your points, create new point 
  objects using ms_newPointObj(), set the XY coordinates, and draw the point on 
  the layer.&nbsp; If you want some specific code examples, I can send along 
  snippet.<BR><BR>Dan<BR><BR>At 11:07 AM 4/3/2003 -0500, Paul Dymecki wrote:<BR>
  <BLOCKQUOTE class=cite cite="" type="cite">Content-Transfer-Encoding: 
    7bit<BR><BR><FONT face=arial size=2>Hi,</FONT><BR><FONT face=arial size=2>I 
    was wondering if anyone would know some good examples of generateing dynamic 
    points with php mapscript?&nbsp; Ie just pulling from points from a database 
    and displaying them without a shape file?</FONT><BR><FONT face=arial 
    size=2>any hints would be apprcited,</FONT><BR><FONT face=arial 
    size=2>thanks,</FONT><BR><FONT face=arial 
size=2>Paul</FONT></BLOCKQUOTE></BLOCKQUOTE></BODY></HTML>

------_=_NextPart_001_01C2FA12.37357200--

------_=_NextPart_000_01C2FA12.37357200
Content-Type: application/octet-stream;
	name="dynamic.php"
Content-Transfer-Encoding: quoted-printable
Content-Disposition: attachment;
	filename="dynamic.php"

<?php

// load required library(s)
dl("php_dbase.dll"); // for shapefile create functions
dl("php_mapscript_36.dll"); // for mapserver php

// create the default parameters in case they do not exist
if (!isset($unique_id)) {
   $unique_id =3D date ("U");
}

//if (!isset($icon_id)){
    //$icon_id =3D "0";
//}

// : : : : : : : : : START FUNCTIONS TAKEN FROM GMAP DEMO  : : : : : : =
: : : : : : : : : : : : : : : : : :
// : : : : : : : : : : : : PROVIDED BY DM SOLUTIONS  : : : : : : : : : =
: : : : : : : : : : : : : : : : : :

// Draw sacle bar.
function drawScaleBar(){

		GLOBAL $map;

    $img =3D $map->drawScaleBar();
    $url =3D $img->saveWebImage(MS_PNG, 0, 0, -1);

    echo"<IMG  SRC=3D$url  BORDER=3D0 >\n";

}

// : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : =
: : : : : : : : : : : : : : : : : :

function drawKeyMap(){

		GLOBAL $map;

    $img =3D $map->drawreferencemap();
    $url =3D $img->saveWebImage(MS_PNG, 0, 0, -1);

    echo"<IMG  SRC=3D$url  BORDER=3D0 >\n";
}

// : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : =
: : : : : : : : : : : : : : : : : :

// write out the query results
function GMapDumpQueryResults(){

  GLOBAL $map, $gbShowQueryResults;

  if ( $gbShowQueryResults ){

		$numResultsTotal =3D 0;

    for($iLayer=3D0; $iLayer < $map->numlayers; $iLayer++){

				$oLayer =3D $map->GetLayer($iLayer);
        $numResults =3D $oLayer->getNumResults();

        if ($numResults =3D=3D 0)
            continue;  // No results in this layer

        // Open layer's table...
        $oLayer->open($map->shapepath);

				// loop throught the result set
        for ($iRes=3D0; $iRes < $numResults; $iRes++){

            $oRes =3D $oLayer->getResult($iRes);

						// get the shape , aka the record in the dbf
            $oShape =3D =
$oLayer->getShape($oRes->tileindex,$oRes->shapeindex);

						// set the field that you want the story id from
						$iField =3D "OCC_ID";

						// write the javascript call with the story id as the argument
						printf("<script>");
						printf("%s", "fireOnLoad('".$oShape->values[$iField]."')");
						printf("</script>");

            $oShape->free();

            $numResultsTotal++;
        }

        $oLayer->close();

    }
  }
}

// : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : =
: : : : : : : : : : : : : : : : : :

// convert pixel coordinates to map coordinate system
function GMapPix2Geo($nPixPos, $dfPixMin, $dfPixMax, $dfGeoMin, =
$dfGeoMax,
                     $nInversePix)
{

    $dfWidthGeo =3D $dfGeoMax - $dfGeoMin;
    $dfWidthPix =3D $dfPixMax - $dfPixMin;

    $dfPixToGeo =3D $dfWidthGeo / $dfWidthPix;

    if (!$nInversePix)
        $dfDeltaPix =3D $nPixPos - $dfPixMin;
    else
        $dfDeltaPix =3D $dfPixMax - $nPixPos;

    $dfDeltaGeo =3D $dfDeltaPix * $dfPixToGeo;

    $dfPosGeo =3D $dfGeoMin + $dfDeltaGeo;

    return ($dfPosGeo);
}
// : : : : : : : : :  END FUNCTIONS TAKEN FROM GMAP DEMO : : : : : : : =
: : : : : : : : : : : : : : : : : :
// : : : : : : : : : : : : PROVIDED BY DM SOLUTIONS  : : : : : : : : : =
: : : : : : : : : : : : : : : : : :

function digitisePoint($x_coord, $y_coord){
	// define the connection parameters
  $hostname =3D "";
  $username =3D "";
  $password =3D "";
  $dbName =3D "";

  // attempt connection to server
  MSSQL_CONNECT($hostname,$username,$password) or DIE("DATABASE FAILED
  TO RESPOND.");

	GLOBAL $desc_id;

  // attempt to connect to the database
  mssql_select_db($dbName) or DIE("Table unavailable");
  // query for insert
  $query =3D "UPDATE Desc_Story SET story_x =3D '$x_coord', story_y =3D =
'$y_coord' WHERE desc_id =3D ".$desc_id;
  // run the query
  $result =3D MSSQL_QUERY($query);

}

// : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : =
: : : : : : : : : : : : : : : : : :
// : : : : : : : : : : : : : : : : : : : : END FUNCTIONS : : : : : : : =
: : : : : : : : : : : : : : : : : :

// BUILD POINT OBJECT ARRAY FROM THE DATABASE FOR POINTS YOU WANT TO =
DYNAMICALLY DISPLAY

// database connection parameters
$hostname =3D "";
$username =3D "";
$password =3D "";
$dbName =3D "";

// associative array to contain the point data
$points =3D array();

MSSQL_CONNECT($hostname,$username,$password) or DIE("DATABASE FAILED TO =
RESPOND.");
mssql_select_db($dbName) or DIE("Table unavailable");

//$query =3D "SELECT con_id, occ_id, story_x, story_y FROM =
getMapServerStories";
// convert icon_id string to array
$iconArray =3D explode(",",$icon_id);

// loop through the iconArray and build the select statement
$selStmt =3D "";
for ($rec=3D0; $rec < sizeof($iconArray); $rec++) {
  if ($rec=3D=3Dsizeof($iconArray)-1){
    $selStmt =3D $selStmt." con_id =3D ".$iconArray[$rec];
  } else {
    $selStmt =3D $selStmt." con_id =3D ".$iconArray[$rec]." OR";
  }
}
// end loop to build select statement
if ( strlen($selStmt) !=3D 0){
  $query =3D "SELECT con_id, occ_id, story_x, story_y FROM =
getMapServerStories WHERE ".$selStmt;

	$result =3D MSSQL_QUERY($query);

  $number =3D MSSQL_NUM_ROWS($result);

  if ($number > 0) {
    while (($row =3D mssql_fetch_array($result, MSSQL_ASSOC))) {
	    $points[$row['occ_id']]['story_x'] =3D $row['story_x'];
	    $points[$row['occ_id']]['story_y'] =3D $row['story_y'];
	  }
  }
}

// FINISHED BUILDING POINT OBJECT ARRAY

// default values and configuration
$val_zsize=3D2;
$check_pan=3D"CHECKED";
$map_path=3D"";
$map_file=3D"ls_map.map";
//$map_file=3D$mapfile.".map";
$map =3D ms_newMapObj($map_path.$map_file);

// set the default zoom mode to pan
if (!isset($zoom)){
  $zoom =3D 0;
}

// set the default mode
if (!isset($HTTP_GET_VARS["mode"])){
  $mode =3D "browse";
  } else {
  $mode =3D $HTTP_GET_VARS["mode"];
}

// capture the user point in pixels
$nClickPixX =3D intval($HTTP_GET_VARS["mapa_x"]);
$nClickPixY =3D intval($HTTP_GET_VARS["mapa_y"]);
$dfWidthPix =3D 350;
$dfHeightPix =3D 300;

// capture the map extents
$dfMinX =3D $HTTP_GET_VARS["Minx"];
$dfMaxX =3D $HTTP_GET_VARS["Maxx"];
$dfMinY =3D $HTTP_GET_VARS["Miny"];
$dfMaxY =3D $HTTP_GET_VARS["Maxy"];

// convert the user point to map coordinate system
$nClickGeoX =3D GMapPix2Geo($nClickPixX, 0, $dfWidthPix, $dfMinX, =
$dfMaxX, 0);
$nClickGeoY =3D GMapPix2Geo($nClickPixY, 0, $dfHeightPix, =
$dfMinY,$dfMaxY, 1);

// if we are in digitise mode, create the point
if( $mode =3D=3D "digitise") {
  digitisePoint($nClickGeoX, $nClickGeoY);
  $mode =3D "browse";
  $prevMode =3D "digitise";
}

// run the create shapefile routine
//createShapeFile($unique_id, $icon_id);

if($loadShapeFile){
// add the new layer by by changing the data source
$layer =3D $map->getLayerByName("stories");
$layer->set("data", "C:/Inetpub/wwwroot/tmp/".$unique_id);
$layer->set("status", MS_ON);
}

// if we are in query mode, run the query and send the results to =
righthand frame
if ($mode =3D=3D "query") {
	$oClickGeo =3D ms_newPointObj();
	$oClickGeo->setXY($nClickGeoX, $nClickGeoY);
	// Use '@' to avoid warning if query found nothing
	@$map->queryByPoint($oClickGeo, MS_SINGLE, -1);

	// set the show query variable to true
	$gbShowQueryResults =3D TRUE;

	// call the dump results query
	//gmapDumpQueryResults();

	// set the extent to the same extent
	$map->setextent($dfMinX, $dfMinY, $dfMaxX, $dfMaxY);


} else {

	if ( isset($HTTP_GET_VARS["mapa_x"]) && =
isset($HTTP_GET_VARS["mapa_y"])
     && $HTTP_GET_VARS["full"]!=3D "extent" ) {

	 $extent_to_set =3D explode(" ",$HTTP_GET_VARS["extent"]);

	 $map->setextent($extent_to_set[0],$extent_to_set[1],
                      $extent_to_set[2],$extent_to_set[3]);

	 $my_point =3D ms_newpointObj();
	 $my_point->setXY($HTTP_GET_VARS["mapa_x"],$HTTP_GET_VARS["mapa_y"]);
	 $my_extent =3D ms_newrectObj();

	 $my_extent->setextent($extent_to_set[0],$extent_to_set[1],
                              $extent_to_set[2],$extent_to_set[3]);

	 if ($prevMode !=3D "digitise"){ // then pan and zoom
		 $zoom_factor =3D $HTTP_GET_VARS["zoom"]*$HTTP_GET_VARS["zsize"];
		 if ($zoom_factor =3D=3D 0) {
			$zoom_factor =3D 1;
     }

     $val_zsize =3D abs($zoom_factor);

		 // check if the redraw button was pressed : if it is
     // the case redraw the same extents.

		 //if ($HTTP_GET_VARS["redraw_x"]) {

		 if ($HTTP_GET_VARS["redraw"]=3D=3D"true") {

			 $map->setextent($dfMinX, $dfMinY, $dfMaxX, $dfMaxY);

		 } else {

    	 $map->zoompoint($zoom_factor,$my_point,$map->width,$map->height, =
$my_extent);

     } // end if redraw_x

	 } // end block the zoom if not in browse mode

  } // end isset mapa_x and mapa_y

}

// draw the map, draw query if mode is query
if ($mode =3D=3D "query"){
        $image =3D $map->drawQuery();
    }else{
        $image =3D $map->draw();
}

// START GENERATING YOUR DYNAMIC POINT LAYER
//  get a layer object representing your pointlayer
$layerObj =3D $map->getLayerByName("points");

// get a class object representing the first class in the layer
$classObj =3D $layerObj->getClass(0);

// create a new point object to hold the X Y data
$pointObj =3D ms_newPointObj();

//iterate through the point data retreived from the database -->
foreach ($points as $occ_id =3D> $coordinates) {

	//set the X Y values of the point object
	$pointObj->setXY($coordinates['story_x'], $coordinates['story_y']);

	// draw the point on the image, using the id attribute to label it
	$pointObj->draw($map, $layerObj, $image, 0, $occ_id);
}

// FINISHED GENERATING THE DYNAMIC POINT LAYER

// create the image
$image_url=3D$image->saveWebImage(MS_PNG,1,1,0);

// write the georef extent
  $extent_to_html =3D $map->extent->minx." ".$map->extent->miny." "
             .$map->extent->maxx." ".$map->extent->maxy;

?>

<HTML>
<HEAD>
<TITLE>dynamic</TITLE>
<script Language=3D"Javascript">
<!--
function changeZoomMode(theName, theValue, theMode){

	// set the mode to browse
	document.forms[0].mode.value=3DtheMode
	document.forms[0].zoom.value=3DtheValue

}

function changeTarget(bullseye){
  // document.form1.target=3Dbullseye
	}

 function fireOnLoad(story_id){
   =
parent.document.displayFrame.location.replace("../localstories/story_dis=
play.cfm?ID=3D"+story_id)
	 }

function fireOnDigitise(){
  // set the digitise button state to off in the story editor page
	if(parent.document.displayFrame.document.pick_location){
    parent.document.displayFrame.endDigitise()
		}
	}

function MM_preloadImages() { //v3.0
  var d=3Ddocument; if(d.images){ if(!d.MM_p) d.MM_p=3Dnew Array();
    var i,j=3Dd.MM_p.length,a=3DMM_preloadImages.arguments; for(i=3D0; =
i<a.length; i++)
    if (a[i].indexOf("#")!=3D0){ d.MM_p[j]=3Dnew Image; =
d.MM_p[j++].src=3Da[i];}}
}

function MM_swapImgRestore() { //v3.0
  var i,x,a=3Ddocument.MM_sr; =
for(i=3D0;a&&i<a.length&&(x=3Da[i])&&x.oSrc;i++) x.src=3Dx.oSrc;
}

function MM_findObj(n, d) { //v4.0
  var p,i,x;  if(!d) d=3Ddocument; =
if((p=3Dn.indexOf("?"))>0&&parent.frames.length) {
    d=3Dparent.frames[n.substring(p+1)].document; =
n=3Dn.substring(0,p);}
  if(!(x=3Dd[n])&&d.all) x=3Dd.all[n]; for =
(i=3D0;!x&&i<d.forms.length;i++) x=3Dd.forms[i][n];
  for(i=3D0;!x&&d.layers&&i<d.layers.length;i++) =
x=3DMM_findObj(n,d.layers[i].document);
  if(!x && document.getElementById) x=3Ddocument.getElementById(n); =
return x;
}

function MM_swapImage() { //v3.0
  var i,j=3D0,x,a=3DMM_swapImage.arguments; document.MM_sr=3Dnew Array; =
for(i=3D0;i<(a.length-2);i+=3D3)
   if ((x=3DMM_findObj(a[i]))!=3Dnull){document.MM_sr[j++]=3Dx; =
if(!x.oSrc) x.oSrc=3Dx.src; x.src=3Da[i+2];}
}
function MM_nbGroup(event, grpName) { //v3.0
  var i,img,nbArr,args=3DMM_nbGroup.arguments;
  if (event =3D=3D "init" && args.length > 2) {
    if ((img =3D MM_findObj(args[2])) !=3D null && !img.MM_init) {
      img.MM_init =3D true; img.MM_up =3D args[3]; img.MM_dn =3D =
img.src;
      if ((nbArr =3D document[grpName]) =3D=3D null) nbArr =3D =
document[grpName] =3D new Array();
      nbArr[nbArr.length] =3D img;
      for (i=3D4; i < args.length-1; i+=3D2) if ((img =3D =
MM_findObj(args[i])) !=3D null) {
        if (!img.MM_up) img.MM_up =3D img.src;
        img.src =3D img.MM_dn =3D args[i+1];
        nbArr[nbArr.length] =3D img;
    } }
  } else if (event =3D=3D "over") {
    document.MM_nbOver =3D nbArr =3D new Array();
    for (i=3D1; i < args.length-1; i+=3D3) if ((img =3D =
MM_findObj(args[i])) !=3D null) {
      if (!img.MM_up) img.MM_up =3D img.src;
      img.src =3D (img.MM_dn && args[i+2]) ? args[i+2] : args[i+1];
      nbArr[nbArr.length] =3D img;
    }
  } else if (event =3D=3D "out" ) {
    for (i=3D0; i < document.MM_nbOver.length; i++) {
      img =3D document.MM_nbOver[i]; img.src =3D (img.MM_dn) ? =
img.MM_dn : img.MM_up; }
  } else if (event =3D=3D "down") {
    if ((nbArr =3D document[grpName]) !=3D null)
      for (i=3D0; i < nbArr.length; i++) { img=3DnbArr[i]; img.src =3D =
img.MM_up; img.MM_dn =3D 0; }
    document[grpName] =3D nbArr =3D new Array();
    for (i=3D2; i < args.length-1; i+=3D2) if ((img =3D =
MM_findObj(args[i])) !=3D null) {
      if (!img.MM_up) img.MM_up =3D img.src;
      img.src =3D img.MM_dn =3D args[i+1];
      nbArr[nbArr.length] =3D img;
  } }
}
//-->
</script>
<?php GMapDumpQueryResults(); ?>

<?php
if ($prevMode =3D=3D "digitise"){
print "<script>";
print "fireOnDigitise()";
print "</script>";
}
?>

</HEAD>
<BODY bgcolor=3D"#FFFFFF" text=3D"#000000" link=3D"#000000" =
onLoad=3D"MM_preloadImages('../localstories/maptools/maptools_r3_c2_f3.g=
if','../localstories/maptools/maptools_r6_c6_f4.gif','../localstories/ma=
ptools/maptools_r7_c1_f3.gif','../localstories/maptools/maptools_r1_c5_f=
3.gif','../localstories/maptools/maptools_r2_c11_f3.gif','../localstorie=
s/maptools/maptools_r2_c11_f2.gif')">
<font color=3D"#FFFF00"></font>
<CENTER>
<FORM NAME=3D"form1" METHOD=3DGET TARGET=3D"_self">
<INPUT TYPE=3DHIDDEN NAME=3D"zsize" VALUE=3D"2" SIZE=3D2>
<INPUT TYPE=3DHIDDEN NAME=3D"extent" VALUE=3D"<?php echo =
$extent_to_html?>">
<INPUT TYPE=3DHIDDEN NAME=3D"mapa_x" VALUE=3D"<?php echo $mapa_x?>">
<INPUT TYPE=3DHIDDEN NAME=3D"mapa_y" VALUE=3D"<?php echo $mapa_y?>">
<INPUT TYPE=3DHIDDEN NAME=3D"Minx" VALUE=3D"<?php echo =
$map->extent->minx?>">
<INPUT TYPE=3DHIDDEN NAME=3D"Maxx" VALUE=3D"<?php echo =
$map->extent->maxx?>">
<INPUT TYPE=3DHIDDEN NAME=3D"Miny" VALUE=3D"<?php echo =
$map->extent->miny?>">
<INPUT TYPE=3DHIDDEN NAME=3D"Maxy" VALUE=3D"<?php echo =
$map->extent->maxy?>">
<INPUT TYPE=3DHIDDEN NAME=3D"unique_id" VALUE=3D"<?php echo =
$unique_id?>">
<INPUT TYPE=3DHIDDEN NAME=3D"mapfile" VALUE=3D"<?php echo $mapfile?>">
<INPUT TYPE=3DHIDDEN NAME=3D"mode" VALUE=3D"<?php echo $mode?>">
<INPUT TYPE=3DHIDDEN NAME=3D"zoom" VALUE=3D"<?php echo $zoom?>">
<INPUT TYPE=3Dhidden NAME=3D"full" VALUE=3D" ">
<INPUT TYPE=3Dhidden NAME=3D"redraw" VALUE=3D"false">
<INPUT TYPE=3Dhidden NAME=3D"icon_id" VALUE=3D"<?php echo $icon_id?>">
<INPUT TYPE=3Dhidden NAME=3D"desc_id" VALUE=3D"<?php echo $desc_id?>">
		<TABLE bgcolor=3D"#FFFFFF" cellpadding=3D"0">
			<TR bgcolor=3D"#FFFFFF">
				<TD colspan=3D"2">
					<table width=3D"350" border=3D"0" cellspacing=3D"1" =
cellpadding=3D"0" bgcolor=3D"#666666" height=3D"310">
						<tr>
							<td bgcolor=3D"#FFFFFF">
								<div align=3D"center">
									<INPUT TYPE=3DIMAGE NAME=3D"mapa" src=3D"<?php echo =
$image_url?>">
								</div>
							</td>
						</tr>
					</table>
				</TD>
			</TR>
			<TR>
				<TD colspan=3D"2"> <font face=3D"Verdana, Arial, Helvetica, =
sans-serif" size=3D"2"> </font>
					<table width=3D"100%" border=3D"0" cellspacing=3D"0" =
cellpadding=3D"0">
						<tr>
							<td align=3D"center">
								<?php if ($zoom=3D=3D"0" && $mode=3D=3D"browse"){ ?>
								<a href=3D"#" onMouseOut=3D"MM_nbGroup('out');"  =
onMouseOver=3D"MM_nbGroup('over','maptools_r1_c5','../localstories/mapto=
ols/maptools_r1_c5_f2.gif','../localstories/maptools/maptools_r1_c5_f4.g=
if',1);"  =
onClick=3D"changeZoomMode('zoom','0','browse');MM_nbGroup('down','navbar=
341','maptools_r1_c5','../localstories/maptools/maptools_r1_c5_f3.gif',1=
);" ><img name=3D"maptools_r1_c5" =
src=3D"../localstories/maptools/maptools_r1_c5_f3.gif" width=3D"31" =
height=3D"29" border=3D"0" =
onLoad=3D"MM_nbGroup('init','navbar341','maptools_r1_c5','../localstorie=
s/maptools/maptools_r1_c5.gif',1)"></a>
								<? } else { ?>
								<a href=3D"#" onMouseOut=3D"MM_nbGroup('out');"  =
onMouseOver=3D"MM_nbGroup('over','maptools_r1_c5','../localstories/mapto=
ols/maptools_r1_c5_f2.gif','../localstories/maptools/maptools_r1_c5_f4.g=
if',1);"  =
onClick=3D"changeZoomMode('zoom','0','browse');MM_nbGroup('down','navbar=
341','maptools_r1_c5','../localstories/maptools/maptools_r1_c5_f3.gif',1=
);" ><img name=3D"maptools_r1_c5" =
src=3D"../localstories/maptools/maptools_r1_c5.gif" width=3D"31" =
height=3D"29" border=3D"0" alt=3D"pan"></a>
								<? } ?>
							</td>
							<td align=3D"center">
								<?php if ($zoom=3D=3D"1" && $mode=3D=3D"browse"){ ?>
								<a href=3D"#" onMouseOut=3D"MM_nbGroup('out');"  =
onMouseOver=3D"MM_nbGroup('over','maptools_r7_c1','../localstories/mapto=
ols/maptools_r7_c1_f2.gif','../localstories/maptools/maptools_r7_c1_f4.g=
if',1);"  =
onClick=3D"changeZoomMode('zoom','1','browse');MM_nbGroup('down','navbar=
341','maptools_r7_c1','../localstories/maptools/maptools_r7_c1_f3.gif',1=
);" ><img name=3D"maptools_r7_c1" =
src=3D"../localstories/maptools/maptools_r7_c1_f3.gif" width=3D"28" =
height=3D"25" border=3D"0" =
onLoad=3D"MM_nbGroup('init','navbar341','maptools_r7_c1','../localstorie=
s/maptools/maptools_r7_c1.gif',1)"></a>
								<? } else { ?>
								<a href=3D"#" onMouseOut=3D"MM_nbGroup('out');"  =
onMouseOver=3D"MM_nbGroup('over','maptools_r7_c1','../localstories/mapto=
ols/maptools_r7_c1_f2.gif','../localstories/maptools/maptools_r7_c1_f4.g=
if',1);"  =
onClick=3D"changeZoomMode('zoom','1','browse');MM_nbGroup('down','navbar=
341','maptools_r7_c1','../localstories/maptools/maptools_r7_c1_f3.gif',1=
);" ><img name=3D"maptools_r7_c1" =
src=3D"../localstories/maptools/maptools_r7_c1.gif" width=3D"28" =
height=3D"25" border=3D"0" alt=3D"zoom in"></a>
								<? } ?>
							</td>
							<td align=3D"center">
								<?php if ($zoom=3D=3D"-1" && $mode=3D=3D"browse"){ ?>
								<a href=3D"#" onMouseOut=3D"MM_nbGroup('out');"  =
onMouseOver=3D"MM_nbGroup('over','maptools_r6_c6','../localstories/mapto=
ols/maptools_r6_c6_f2.gif','../localstories/maptools/maptools_r6_c6_f4.g=
if',1);"  =
onClick=3D"changeZoomMode('zoom','-1','browse');MM_nbGroup('down','navba=
r341','maptools_r6_c6','../localstories/maptools/maptools_r6_c6_f3.gif',=
1);" ><img name=3D"maptools_r6_c6" =
src=3D"../localstories/maptools/maptools_r6_c6_f3.gif" width=3D"29" =
height=3D"26" border=3D"0" =
onLoad=3D"MM_nbGroup('init','navbar341','maptools_r6_c6','../localstorie=
s/maptools/maptools_r6_c6.gif',1)"></a>
								<? } else { ?>
								<a href=3D"#" onMouseOut=3D"MM_nbGroup('out');"  =
onMouseOver=3D"MM_nbGroup('over','maptools_r6_c6','../localstories/mapto=
ols/maptools_r6_c6_f2.gif','../localstories/maptools/maptools_r6_c6_f4.g=
if',1);"  =
onClick=3D"changeZoomMode('zoom','-1','browse');MM_nbGroup('down','navba=
r341','maptools_r6_c6','../localstories/maptools/maptools_r6_c6_f3.gif',=
1);" ><img name=3D"maptools_r6_c6" =
src=3D"../localstories/maptools/maptools_r6_c6.gif" width=3D"29" =
height=3D"26" border=3D"0" alt=3D"zoom out"></a>
								<? } ?>
							</td>
							<td align=3D"center"> <a href=3D"#" =
onMouseOut=3D"MM_nbGroup('out');"  =
onMouseOver=3D"MM_nbGroup('over','maptools_r2_c11','../localstories/mapt=
ools/maptools_r2_c11_f2.gif','',1)"  =
onClick=3D"document.forms[0].full.value=3D'extent';document.forms[0].mod=
e.value=3D'browse';document.forms[0].submit()"><img =
src=3D"../localstories/maptools/maptools_r2_c11.gif" width=3D"28" =
height=3D"25" alt=3D"zoom all" border=3D"0" =
name=3D"maptools_r2_c11"></a>
							</td>
							<td align=3D"center">
								<?php if ($mode=3D=3D"query"){ ?>
								<a href=3D"#" onMouseOut=3D"MM_nbGroup('out');"  =
onMouseOver=3D"MM_nbGroup('over','maptools_r3_c2','../localstories/mapto=
ols/maptools_r3_c2_f2.gif','../localstories/maptools/maptools_r3_c2_f4.g=
if',1);"  =
onClick=3D"javascript:document.forms[0].mode.value=3D'query';MM_nbGroup(=
'down','navbar341','maptools_r3_c2','../localstories/maptools/maptools_r=
3_c2_f3.gif',1);" ><img name=3D"maptools_r3_c2" =
src=3D"../localstories/maptools/maptools_r3_c2_f3.gif" width=3D"25" =
height=3D"22" border=3D"0" =
onLoad=3D"MM_nbGroup('init','navbar341','maptools_r3_c2','../localstorie=
s/maptools/maptools_r3_c2.gif',1)"></a>
								<? } else { ?>
								<a href=3D"#" onMouseOut=3D"MM_nbGroup('out');"  =
onMouseOver=3D"MM_nbGroup('over','maptools_r3_c2','../localstories/mapto=
ols/maptools_r3_c2_f2.gif','../localstories/maptools/maptools_r3_c2_f4.g=
if',1);"  =
onClick=3D"javascript:document.forms[0].mode.value=3D'query';MM_nbGroup(=
'down','navbar341','maptools_r3_c2','../localstories/maptools/maptools_r=
3_c2_f3.gif',1);" ><img name=3D"maptools_r3_c2" =
src=3D"../localstories/maptools/maptools_r3_c2.gif" width=3D"25" =
height=3D"22" border=3D"0" alt=3D"query"></a>
								<? } ?>
							</td>
							<td align=3D"center"> <a href=3D"#" =
onClick=3D"document.forms[0].redraw.value=3D'true';document.forms[0].sub=
mit()"><img src=3D"images/icon_redraw.gif" width=3D"19" height=3D"19" =
alt=3D"refresh map" border=3D"0"></a></td>
						</tr>
					</table>
				</TD>
			</TR>
			<TR>
				<TD rowspan=3D"2">
					<table border=3D"0" cellspacing=3D"1" cellpadding=3D"0" =
bgcolor=3D"#666666" height=3D"140" width=3D"160">
						<tr>
							<td bgcolor=3D"#FFFFFF" height=3D"33" valign=3D"middle" =
align=3D"center">
								<?php drawKeyMap() ?>
							</td>
						</tr>
					</table>
				</TD>
			</TR>
			<TR>
				<TD valign=3D"top">
					<div align=3D"center"></div>
					<div align=3D"center">
						<?php drawScaleBar() ?>
					</div>
				</TD>
		</TABLE>
</FORM>
</CENTER>
</BODY>

------_=_NextPart_000_01C2FA12.37357200--



More information about the mapserver-users mailing list