<html><head><style type="text/css"><!-- DIV {margin:0px;} --></style></head><body><div style="font-family:times new roman, new york, times, serif;font-size:12pt"><div>I tried the ruler tool putting<span style="font-family: monospace;"> </span><span style="font-family: monospace;"><br></span><pre>myKaRuler = new myKaRuler( myKaMap);</pre>on the myOnLoad() function of startup.js<br><br>However I always get an exception message saying<br><span style="font-weight: bold;">ReferenceError: myKaRuler is not defined<br><br></span>I already added the javascript call for myKaRuler<br>&lt;script type="text/javascript" src="tools/kaRuler/kaRuler.js"&gt;&lt;/script&gt;<br><br>Can anyone help me please?<br><br>this is the kaRuler.js code<br>/**<br>&nbsp;* myKaRuler constructor<br>&nbsp;*<br>&nbsp;* construct a new myKaRuler object of a given type for a given kaMap <br>instance<br>&nbsp;*<br>&nbsp;* oKaMap - a kaMap instance<br>&nbsp;*<br>&nbsp;*/<br>function myKaRuler(
 oKaMap ) {<br>alert("ruler");<br>&nbsp;&nbsp;&nbsp; kaTool.apply( this, [oKaMap] );<br>&nbsp;&nbsp;&nbsp; this.name = 'myKaRuler';<br>&nbsp;&nbsp;&nbsp; this.cursor = 'default';<br>&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; this.canvas = null;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // the units abrevations (if map units is DD, the distance is in <br>kilometers)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; this.unitsAbrevations = new Array("ft","in","km","m","mi","km");<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp; //this is the HTML element that is visible<br>&nbsp;&nbsp;&nbsp; this.domObj = document.createElement( 'div' );<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; this.domObj.id = 'measureResult';<br>&nbsp;&nbsp;&nbsp; this.domObj.style.position = 'absolute';<br>&nbsp;&nbsp;&nbsp; this.domObj.style.top = '-300px';<br>&nbsp;&nbsp;&nbsp; this.domObj.style.left =
 '-300px';<br>&nbsp;&nbsp;&nbsp; this.domObj.style.width = '150px';<br>&nbsp;&nbsp;&nbsp; this.domObj.style.height = '65px';<br>&nbsp;&nbsp;&nbsp; this.domObj.style.zIndex = 300;<br>&nbsp;&nbsp;&nbsp; this.domObj.style.visibility = 'hidden';<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; this.domObj.style.backgroundColor = 'white';<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; this.domObj.style.border = '1px solid #999999';<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; this.domObj.style.fontFamily = 'Verdana, Arial';<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; this.domObj.style.fontSize = '10px';<br>&nbsp;&nbsp;&nbsp; document.body.appendChild( this.domObj );<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // the jsgraphic object<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; this.jg = null;<br>&nbsp;&nbsp;&nbsp; // store the user clicks coordinates<br>&nbsp;&nbsp;&nbsp; this.startx = null;<br>&nbsp;&nbsp;&nbsp; this.starty = null;<br>&nbsp;&nbsp;&nbsp; this.endx =
 null;<br>&nbsp;&nbsp;&nbsp; this.endy = null;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // the total polyline length<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; this.total = 0.0;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; this.input = getRawObject('coords');<br>&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp; for (var p in kaTool.prototype) {<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (!myKaRuler.prototype[p])<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; myKaRuler.prototype[p]= kaTool.prototype[p];<br>&nbsp;&nbsp;&nbsp; }<br>};<br><br>/**<br>&nbsp;* activate this tool.&nbsp; Activating the tool causes any existing tools to be<br>&nbsp;* deactivated.<br>&nbsp;*/<br>myKaRuler.prototype.activate = function() {<br>&nbsp;&nbsp;&nbsp; this.kaMap.activateTool( this );<br>&nbsp;&nbsp;&nbsp; document.kaCurrentTool = this;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
 <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; this.domObj.innerHTML = "&lt;h3&gt;&amp;nbsp;Seg : &lt;input type='text' <br>id='measureSeg' <br>style='border:none;background-color:transparent;width:75px;' /&gt; <br>"+this.unitsAbrevations[this.kaMap.getCurrentMap().units]+"&lt;br&gt;&lt;br&gt;&amp;nbsp;Tot <br>: &lt;input type='text' id='measureTot' <br>style='border:none;background-color:transparent;width:75px;' /&gt; <br>"+this.unitsAbrevations[this.kaMap.getCurrentMap().units];<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if(this.canvas == null){<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; this.canvas = this.kaMap.createDrawingCanvas( 300 );<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; this.canvas.id = "measureCanvas";<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if(this.jg ==
 null){<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; this.jg = new jsGraphics("measureCanvas");<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; this.jg.setColor("#ff0000");<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; this.jg.setStroke(3);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; this.domObj.style.visibility='visible';<br>};<br><br>/**<br>&nbsp;* deactivate this tool. <br>&nbsp;*/<br>myKaRuler.prototype.deactivate = function() {<br>&nbsp;&nbsp;&nbsp; this.kaMap.deactivateTool( this );<br>&nbsp;&nbsp;&nbsp; document.kaCurrentTool = null;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; this.jg.clear();<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; this.jg=null;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; this.kaMap.removeDrawingCanvas(this.canvas);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; this.canvas=null;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
 this.domObj.style.visibility='hidden';<br>};<br><br>/*<br>&nbsp;* draw line representing the measure.<br>&nbsp;*<br>&nbsp; */<br>myKaRuler.prototype.drawLine = function() {<br>&nbsp;&nbsp;&nbsp; this.jg.drawLine((this.startx-this.kaMap.xOrigin), <br>(this.starty-this.kaMap.yOrigin),<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (this.endx-this.kaMap.xOrigin), <br>(this.endy-this.kaMap.yOrigin)); // co-ordinates related to "myCanvas"<br>&nbsp;&nbsp;&nbsp; this.jg.paint();<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; this.startx = this.endx;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; this.starty = this.endy;<br>};<br><br>/**<br>&nbsp;* myKaRuler.onmouseout( e )<br>&nbsp;*<br>&nbsp;* called when the mouse leaves theInsideLayer.&nbsp; hide the result box<br>&nbsp;*<br>&nbsp;* e - object, the event object or null (in ie)<br>&nbsp;*/<br>myKaRuler.prototype.onmouseout = function(e)
 {<br>&nbsp;&nbsp;&nbsp; e = (e)?e:((event)?event:null);<br>&nbsp;&nbsp;&nbsp; if (!e.target) e.target = e.srcElement;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; this.domObj.style.visibility='hidden';<br>};<br><br>/**<br>&nbsp;* myKaRuler.onmouseout( e )<br>&nbsp;*<br>&nbsp;* called when the mouse leaves theInsideLayer.&nbsp; show the result box<br>&nbsp;*<br>&nbsp;* e - object, the event object or null (in ie)<br>&nbsp;*/<br>myKaRuler.prototype.onmouseover = function(e) {<br>&nbsp;&nbsp;&nbsp; e = (e)?e:((event)?event:null);<br>&nbsp;&nbsp;&nbsp; if (!e.target) e.target = e.srcElement;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; this.domObj.style.visibility='visible';<br>};<br><br>/**<br>&nbsp;* myKaRuler.onmousemove( e )<br>&nbsp;*<br>&nbsp;* called when the mouse moves over theInsideLayer.<br>&nbsp;*<br>&nbsp;* e - object, the event object or null (in ie)<br>&nbsp;*/<br>myKaRuler.prototype.onmousemove = function(e) {<br>&nbsp;&nbsp;&nbsp; e =
 (e)?e:((event)?event:null);<br><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //show coordinate<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; var x = e.pageX || (e.clientX +<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (document.documentElement.scrollLeft || <br>document.body.scrollLeft));<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; var y = e.pageY || (e.clientY +<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (document.documentElement.scrollTop || document.body.scrollTop));<br>&nbsp;&nbsp;&nbsp; var aPixPos = this.adjustPixPosition( x,y );<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; var geoCoo= this.kaMap.pixToGeo(aPixPos[0],aPixPos[1]);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; var gX = geoCoo[0];<br>&nbsp;&nbsp;&nbsp; var gY = geoCoo[1];<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; var gX= (parseInt(gX*10000))/10000;<br>&nbsp;&nbsp;&nbsp; var gY=
 (parseInt(gY*10000))/10000;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if(this.input)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if(this.kaMap.getCurrentMap().units == 5)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; this.input.value = "Lon.: "+gX+" Lat.: "+gY;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; else<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; this.input.value = "X: "+gX+" Y: "+gY;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //**//<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; this.domObj.style.left = (e.clientX+5)+"px";<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; this.domObj.style.top =&nbsp; (e.clientY+5)+"px";<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if(this.startx !==
 null)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; this.endx=-aPixPos[0];<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; this.endy=-aPixPos[1];<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if(this.kaMap.getCurrentMap().units == 5)&nbsp;&nbsp;&nbsp; {<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; document.getElementById("measureSeg").value = <br>this.measureSphericalDistance2Points(this.startx,this.starty,this.endx,this.endy);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }else{<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; document.getElementById("measureSeg").value = <br>this.measure2points(this.startx,this.starty,this.endx,this.endy);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br>&nbsp;&nbsp;&nbsp;
 return false;<br>}<br>;<br>/**<br>&nbsp;* myKaRuler.onmousedown( e )<br>&nbsp;*<br>&nbsp;* called when a mouse button is pressed over theInsideLayer.<br>&nbsp;*<br>&nbsp;* e - object, the event object or null (in ie)<br>&nbsp;*/<br>myKaRuler.prototype.onmousedown = function(e) {<br>&nbsp;&nbsp;&nbsp; e = (e)?e:((event)?event:null);<br>&nbsp;&nbsp;&nbsp; if (e.button==2) {<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; this.jg.clear();<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; this.startx=this.starty=this.endx=this.endy=null;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; document.getElementById("measureSeg").value="0.0";<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
 document.getElementById("measureTot").value="0.0";<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; this.total = 0.0;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return this.cancelEvent(e);<br>&nbsp;&nbsp;&nbsp; } else {<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (this.kaMap.isIE4) document.onkeydown = <br>kaTool_redirect_onkeypress;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; document.onkeypress = kaTool_redirect_onkeypress;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; var x = e.pageX || (e.clientX +<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (document.documentElement.scrollLeft || <br>document.body.scrollLeft));<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; var y = e.pageY || (e.clientY +<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
 (document.documentElement.scrollTop || <br>document.body.scrollTop));<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; var aPixPos = this.adjustPixPosition( x,y );<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if(this.endx == null)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; this.startx=this.endx=-aPixPos[0];<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; this.starty=this.endy=-aPixPos[1];<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; else<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
 this.endx=-aPixPos[0];<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; this.endy=-aPixPos[1];<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if(this.kaMap.getCurrentMap().units == 5)&nbsp;&nbsp;&nbsp; {<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; this.total += <br>this.measureSphericalDistance2Points(this.startx,this.starty,this.endx,this.endy);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }else{<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; this.total +=
 <br>this.measure2points(this.startx,this.starty,this.endx,this.endy);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; this.total = parseInt(this.total*100)/100;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; document.getElementById("measureTot").value = this.total;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; this.drawLine();<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; e.cancelBubble = true;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; e.returnValue = false;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (e.stopPropogation) e.stopPropogation();<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (e.preventDefault) e.preventDefault();<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return false;<br>&nbsp;&nbsp;&nbsp;
 }<br>};<br><br>/**<br>&nbsp;* myKaRuler.onmouseup( e )<br>&nbsp;*<br>&nbsp;* called when a mouse button is clicked over theInsideLayer.<br>&nbsp;*<br>&nbsp;* e - object, the event object or null (in ie)<br>&nbsp;*/<br>myKaRuler.prototype.onmouseup = function(e) {<br>&nbsp;&nbsp;&nbsp; e = (e)?e:((event)?event:null);<br>&nbsp;&nbsp;&nbsp; return false;<br>};<br>/**<br>* myKaRuler.measureSphericalDistance2Points<br>*<br>* pix1,piy1 - pixel coordinates of the first point<br>* pix2,piy2 - pixel coordinates of the second point<br>*<br>* This function is used to calculate the distance between two points in <br>decimel degree unit.<br>* It assume that the earth is a perfect sphere, so the calculation isn't <br>accurate.<br>* In fact the further you are from the equator the least accurate the <br>calulation is.<br>*/<br>myKaRuler.prototype.measureSphericalDistance2Points = <br>function(pix1,piy1,pix2,piy2)<br>{<br>&nbsp;&nbsp;&nbsp; var pt1 =
 this.kaMap.pixToGeo(pix1,piy1);<br>&nbsp;&nbsp;&nbsp; var pt2 = this.kaMap.pixToGeo(pix2,piy2);<br>&nbsp;&nbsp;&nbsp; /* Convert all the degrees to radians */<br>&nbsp;&nbsp;&nbsp; var la1 = pt1[0] * Math.PI/180.0;<br>&nbsp;&nbsp;&nbsp; var lo1 = pt1[1] * Math.PI/180.0;<br>&nbsp;&nbsp;&nbsp; var la2 = pt2[0] * Math.PI/180.0;<br>&nbsp;&nbsp;&nbsp; var lo2 = pt2[1] * Math.PI/180.0;<br>&nbsp;&nbsp;&nbsp; /* Find the Great Circle distance */<br>&nbsp;&nbsp;&nbsp; var EARTH_RADIUS = 6378;//kilometers //3956;//miles<br>&nbsp;&nbsp;&nbsp; var distance = <br>Math.acos(Math.sin(la1)*Math.sin(la2)+Math.cos(la1)*Math.cos(la2)*Math.cos(lo2-lo1)) <br>* EARTH_RADIUS ;<br>&nbsp;&nbsp;&nbsp; return distance ;<br>};<br><br>/**<br>* myKaRuler.measureSphericalDistance2Points<br>*<br>* p1X,p1Y - pixel coordinates of the first point<br>* p2X,p2Y - pixel coordinates of the second point<br>*<br>* This function is used to calculate the distance between two points in <br>planar
 projection.<br>* I use the Pythagor algorythm. The result unit is the same as the <br>projection unit and is round<br>* at two decimals.<br>*/<br>myKaRuler.prototype.measure2points = function(p1X,p1Y,p2X,p2Y)<br>{<br>&nbsp;&nbsp;&nbsp; // Diff X/Y between current new and previous click<br>&nbsp;&nbsp;&nbsp; var x_delta = p1X - p2X;<br>&nbsp;&nbsp;&nbsp; var y_delta = p1Y - p2Y;<br>&nbsp;&nbsp;&nbsp; // Segment length in Pixel<br>&nbsp;&nbsp;&nbsp; var segLenPix = Math.sqrt((Math.pow(x_delta, 2)) + <br>(Math.pow(y_delta, 2)));<br>&nbsp;&nbsp;&nbsp; // Segment length in&nbsp; map coordinates,&nbsp; write values to input boxes<br>&nbsp;&nbsp;&nbsp; var extent = this.kaMap.getGeoExtents();<br>&nbsp;&nbsp;&nbsp; var xdelta_geo = extent[2]-extent[0];<br>&nbsp;&nbsp;&nbsp; var segLenGEO = parseInt( ((segLenPix/this.kaMap.viewportWidth ) * <br>xdelta_geo)*100 )/100;<br>&nbsp;&nbsp;&nbsp; return segLenGEO;<br>};<br><span style="font-weight: bold;"></span><span
 style="font-family: monospace;"></span></div></div><br>



      <hr size=1>Never miss a thing.  <a href="http://us.rd.yahoo.com/evt=51438/*http://www.yahoo.com/r/hs"> Make Yahoo your homepage.</a></body></html>