[Mapserver-users] dynamic point generation with php-mapscript
Van Ulden, Joost
jvanulde at nrcan.gc.ca
Thu Apr 3 10:52:46 PST 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.
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> </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> </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. 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? 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