DHTML rubber-band box

Ethan Alpert ealpert at DIGITALGLOBE.COM
Thu Nov 10 18:34:02 EST 2005


Check your webserver logs and look at the URL it's submitting...Copy
that and in a browse use it changing mode=browse to mode=map...If
nothing displays then you most likely have your projection or extents
wrong. This is how I initially figured out how to debug what was going
on in the dhtml example.
 
 
-e

	-----Original Message-----
	From: UMN MapServer Users List
[mailto:MAPSERVER-USERS at LISTS.UMN.EDU] On Behalf Of Jennifer A Bennett
	Sent: Thursday, November 10, 2005 2:57 PM
	To: MAPSERVER-USERS at LISTS.UMN.EDU
	Subject: [UMN_MAPSERVER-USERS] DHTML rubber-band box
	
	

	I am trying to copy the code for the DHTML rubber-band box from
the Itasca Demo and cannot get it to show my map. 
	I am wondering what other code I must copy or change to make
this work? 
	I am able to get the gist of the Javascript code, but I am not
familiar enough to write new code. 
	
	So far I have copied the Javascript folder and most of the
graphics from the Graphics folder into my drive. 
	I have copied and inserted the portion of code below from the
(Itasca) index.html into my index.html file. 
	
	<!-- EDIT THE FORM ACTION --> 
	    <form name="watershed_main" method="GET"
action="/cgi-bin/mapserv.exe"> 
	
	      <input type="hidden" name="layer" value="major_basins"> 
	      <input type="hidden" name="layer" value="county"> 
	      <input type="hidden" name="layer" value="MajRds"> 
	      <input type="hidden" name="zoomsize" value=2> 
	
	      <!-- EDIT THESE HIDDEN VARIABLES --> 
	      <input type="hidden" name="map"
value="d:/webData/watershed/major_basins.map"> 
	      <input type="hidden" name="program"
value="/cgi-bin/mapserv.exe"> 
	      <input type="hidden" name="root"
value="http://sr08dmnspl/watershed"> 
	      <input type="hidden" name="map_web_imagepath"
value="./tmp/"> 
	      <input type="hidden" name="map_web_imageurl"
value="http://sr08dmnspl/watershed/tmp/"> 
	      <input type="submit" value="Start Application"></center> 
	
	
	I have also copied the code below from the
itasca_adds_dhtml.html file and placed it into my file called
watershed_main.html 
	
	Here is my watershed_main.html code 
	
	<!-- watershed_main.html 
	   This is the start of the interactive major watershed map. -->

	
	<html> 
	<head> 
	<title>Interactive Major (HUC Level 4) Web Page</title> 
	
	
	
	<!-- the DHTML JavaScript library includes --> 
	<script type="text/javascript"
src="../watershed/javascript/cbe/cbe_core.js"></script> 
	<script type="text/javascript"
src="../watershed/javascript/cbe/cbe_event.js"></script> 
	
	<!-- MapServer specific JavaScript library includes --> 
	<script language="javascript"
src="../watershed/javascript/mapserv.js"></script> 
	<script language="JavaScript"
src="../watershed/javascript/dbox.js"></script> 
	
	<!-- utility library --> 
	<script language="JavaScript"
src="../watershed/javascript/utils.js"></script> 
	
	<!-- scripting specific to the application --> 
	<script language="javascript"> 
	  // first, nab any arguments passed to this page (so we don't
have to edit the page) 
	  var args = getargs(); 
	
	  // the DHTML main mapping window (note the significance of the
name "main" here and with the Mapserv object) 
	  var main = new dBox("main",600, 600, "#FF0000", 2); 
	  // main.verbose = true; 
	
	  // the DHTML reference map window 
	  var reference = new dBox("reference", 120, 120, "#989898", 1);

	  reference.box = false; 
	  reference.cursorsize = 0; 
	
	  // mapserv.js global variables 
	  var MapServer = args.program; 
	  var QueryServer = MapServer; 
	  var Interface = "dhtml"; 
	
	  // create the Mapserv object 
	  var ms = new Mapserv("main", args.map, 149599, 4782069,
767075, 5483304, 600, 600); 
	  ms.minscale = 1000; 
	  ms.maxscale = 1550000; 
	
	  // layer definitions 
	  ms.layers[ms.layes.length] = new layer ('major_basins','Major
Basins','layers',true, null, null) 
	  ms.layers[ms.layers.length] = new Layer('county', 'Counties',
'layers', false, null, null); 
	  ms.layers[ms.layers.length] = new Layer('MajRds', 'Major
Roads', 'layers', false, null, null); 
	  ms.buildlayers(); 
	
	  // add the reference map 
	  ms.referencemap = new Mapserv("reference", args.map,
393234.393701263, 5205405.16440722, 495769.579718949, 5307959.02579127,
120, 120); 
	
	  // 
	  // Extensions to Mapserv.draw(): this allows you to exend the
capabilties of 
	  // of the default draw method. There are post and pre draw
functions available. 
	  // 
	  function predraw() { 
	    // clear any query results 
	    top.query_frame.location.href='watershed_main.html'; 
	
	    // update the scalebars 
	    document.scalebar_miles.src = MapServer + "?map=" +
ms.mapfile + "&mode=scalebar&mapext=0+0+" + (ms.extent[2] -
ms.extent[0]) + "+" + (ms.extent[3] - ms.extent[1]) + "&mapsize=" +
ms.width + "+" + ms.height; 
	    document.scalebar_kilometers.src = MapServer + "?map=" +
ms.mapfile + "&map_scalebar_units=kilometers&mode=scalebar&mapext=0+0+"
+ (ms.extent[2] - ms.extent[0]) + "+" + (ms.extent[3] - ms.extent[1]) +
"&mapsize=" + ms.width + "+" + ms.height; 
	
	    // update the legend 
	    document.legend.src = MapServer + "?map=" + ms.mapfile +
"&mode=legend&layers=" + ms.layerlist; 
	    reference.sync(); 
	  } 
	
	  // 
	  // Functions that are called by the jBox applet or the dBox
javascript code: 
	  // basically these provide the gateway from the applet/layers
to the rest of 
	  // the application. Note that they are the same regardless of
implementation. 
	  // 
	  // Bottom line: you may want to swipe some of this code. 
	  // 
	  // jBox/dBox errors are passed to the browser via this
function 
	  function seterror_handler(name, message) { alert("Component "
+ name + " error: " + message); } 
	
	  // allows jBox/dBox to reset without redrawing 
	  function reset_handler(name, minx, miny, maxx, maxy) { } 
	
	  // called from jBox/dBox when the user initiates change 
	  function setbox_handler(name, minx, miny, maxx, maxy) { 
	    if(name == 'reference') { 
	      ms.applyreference(minx, miny); 
	      ms.draw(); 
	    } else { 
	      if(ms.mode == 'map') { 
	        if(minx != maxx && miny != maxy) 
	          ms.applybox(minx, miny, maxx, maxy); 
	        else 
	          ms.applyzoom(minx, miny); 
	        ms.draw(); 
	      } else if(ms.mode != 'map') { 
	        ms.applyquerybox(minx, miny, maxx, maxy); // these just
set members 
	        ms.applyquerypoint(minx, miny);           
	        ms.query(); // builds query URL 
	        top.query_frame.location.href = ms.url; 
	      } 
	    } 
	  } 
	            
	  // various event handlers called by jBox/dBox 
	  function mousemove_handler(name, x, y) { 
	    window.status = "UTM Coordinates: x=" +
Math.round(Number(ms.extent[0] + x*ms.cellsize)) + " and y=" +
Math.round(Number(ms.extent[3] - y*ms.cellsize)); 
	  } 
	  function mouseexit_handler(name) { window.status = ""; } 
	  function mouseenter_handler(name) { window.status = ""; } 
	
	  // page initialization function 
	  function windowOnload() { 
	    main.initialize(); 
	    reference.initialize(); 
	
	    ms.zoomdir=1; 
	    ms.draw(); 
	  } 
	</script> 
	
	
	<p align="center">Interactive Major (HUC Level 4) Web Page</p> 
	</b></font> 
	<hr> 
	<table border=0 cellpadding=5> 
	<tr> 
	  <td align=center valign="top"> 
	  <table width="390" border="0" cellspacing="0" cellpadding="0"
align="center" bgcolor="#666666"> 
	    <tr> 
	      <td align="right" width="18"><a
href="javascript:ms.pan('nw')"><img src="../watershed/images/nw.gif"
width="18" height="18" border="0" alt="pan northwest"></a></td> 
	      <td align="center"><a href="javascript:ms.pan('n')"><img
src="../watershed/images/n.gif" width="23" height="18" border="0"
alt="pan north"></a></td> 
	      <td align="left" width="18"><a
href="javascript:ms.pan('ne')"><img src="../watershed/images/ne.gif"
width="18" height="18" border="0" alt="pan northeast"></a></td> 
	    </tr> 
	    <tr> 
	      <td align="right" width="18"><a
href="javascript:ms.pan('w')"><img src="../watershed/images/w.gif"
width="18" height="23" border="0" alt="pan west"></a></td> 
	      <td align="center" bgcolor="#cccccc"> 
	        <!-- this is the holding spot (the anchor) for the map
--> 
	        <DIV id="main_anchor" style="position:relative;
visibility:visible; width:100%; height:100%; left:0px; top:0px;"><IMG
src="../watershed/images/red_pixel.gif" height="600" width="600"></DIV> 
	        <!-- absolutely positioned layer to hold the map --> 
	        <DIV id="main" style="position:absolute;
visibility:visible; width:100%; height:100%;
clip:rect(100%,100%,100%,100%); background:transparent;"><IMG
name="main" src="../watershed/images/transparent_pixel.gif" height="600"
width="600"></DIV> 
	     </td> 
	      <td align="left" width="18"><a
href="javascript:ms.pan('e')"><img src="../watershed/images/e.gif"
width="18" height="23" border="0" alt="pan east"></a></td> 
	    </tr> 
	    <tr> 
	      <td align="right" width="18"><a
href="javascript:ms.pan('sw')"><img src="../watershed/images/sw.gif"
width="18" height="18" border="0" alt="pan southwest"></a></td> 
	      <td align="center"><a href="javascript:ms.pan('s')"><img
src="../watershed/images/s.gif" width="23" height="18" border="0"
alt="pan south"></a></td> 
	      <td align="left" width="18"><a
href="javascript:ms.pan('se')"><img src="../watershed/images/se.gif"
width="18" height="18" border="0" alt="pan southeast"></a></td> 
	    </tr> 
	    <tr><td bgcolor="#666666" colspan="3"> 
	      <img name="scalebar_kilometers" align="right"
title="scalebar (km)" alt="scalebar (km)"
src="../watershed/images/white_pixel.gif"> 
	      <img name="scalebar_miles" title="scalebar (mi)"
alt="scalebar (mi)" src="../watershed/images/white_pixel.gif"> 
	    </td></tr> 
	
	</table> 
	  <td valign=top> 
	    <p align="left"> 
	    <font size=+2 face=arial,helvetica><b>MAP
CONTROLS</b></font> 
	    <hr> 
	    <br> 
	    <!-- Note that we don't have a submit action for this form,
we only need the form for some controls --> 
	      <form name="mapserv" action="javascript:void(0)"> 
	        <p><b>Choose an Action: </b><br> 
	        <input onClick="ms.mode='map'" type="radio" name="mode"
checked> Browse map<br> 
	        <input onClick="ms.mode='query'" type="radio"
name="mode"> Query feature<br> 
	        <input onClick="ms.mode='nquery'" type="radio"
name="mode"> Query multiple features 
	        
	    <!--<font size=+1 face=arial,helvetica>Layers</font>--> 
	    <br> 
	    <p><b>Select Layers to Display: </b><br> 
	    <select multiple name="layers" size=3
onChange="ms.togglelayers(this)"> 
	    <option value="county"> Counties 
	    <option value="MajRds"> Major Roads 
	    </select> 
	    <br> 
	    
	        
	    <p><b>Zoom Controls: </b><br> 
	        <input onClick="ms.zoomdir=1" type=radio name=zoomdir
checked>Zoom In<br> 
	        <input onClick="ms.zoomdir=0" type=radio
name=zoomdir>Pan<br> 
	        <input onClick="ms.zoomdir=-1" type=radio
name=zoomdir>Zoom Out 
	        <p> 
	        Zoom Size <input type=text name=zoomsize size=4 value=2
onChange="ms.zoomsize=this.value"> 
	  </td> 
	</tr></table> 
	

-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.osgeo.org/pipermail/mapserver-users/attachments/20051110/2d3d200b/attachment.html


More information about the mapserver-users mailing list