aimsClick.js
上传用户:gzuoyue
上传日期:2022-07-08
资源大小:177k
文件大小:20k
源码类别:

GIS编程

开发平台:

ASP/ASPX

  1. // aimsClick.js
  2. /*
  3. *  JavaScript template file for ArcIMS HTML Viewer
  4. * dependent on aimsXML.js, ArcIMSparam.js, aimsCommon.js, aimsMap.js,
  5. * aimsLayers.js, aimsDHTML.js
  6. * aimsNavigation.js
  7. */
  8. aimsClickPresent=true;
  9. var onOVArea = false;
  10. // Global vars to save mouse position
  11. var mouseX=0;
  12. var mouseY=0;
  13. var x1=0;
  14. var y1=0;
  15. var x2=0;
  16. var y2=0;
  17. var zleft=0;
  18. var zright=0;
  19. var ztop=0;
  20. var zbottom=0;
  21. var totalMeasure=0;
  22. var currentMeasure=0;
  23. var lastTotMeasure=0;
  24. // variables for interactive clicks
  25. var clickCount = 0;
  26. var clickPointX = new Array();
  27. var clickPointY = new Array();
  28. var clickMeasure = new Array();
  29. // type - 1=Measure; 2=SelectLine ; 3=SelectPolygon
  30. var clickType = 1;
  31. var shapeSelectBuffer = false;
  32. var panning=false;
  33. var zooming=false;
  34. var selectBox=false;
  35. var blankImage = "images/map.gif";
  36. var leftButton =1;
  37. var rightButton = 2;
  38. if (isNav) {
  39. leftButton = 1;
  40. rightButton = 3;
  41. }
  42. /*  *****************************************************
  43. * Point click functions
  44. *  used by Measure and Select by Line/Polygon
  45. * *****************************************************
  46. */
  47. // put a point at click and add to clickCount
  48. function clickAddPoint() {
  49. var theX = mouseX;
  50. var theY = mouseY;
  51. getMapXY(theX,theY);
  52. clickPointX[clickCount]=mapX;
  53. clickPointY[clickCount]=mapY;
  54. clickCount += 1;
  55. selectCount=0;
  56. totalMeasure = totalMeasure + currentMeasure;
  57. //var u = Math.pow(10,numDecimals);
  58. //if (totalMeasure!=0) totalMeasure = parseInt(totalMeasure*u+0.5)/u;
  59. clickMeasure[clickCount]=totalMeasure;
  60. legendTemp=legendVisible;
  61. legendVisible=false;
  62. var theString = writeXML();
  63. var theNum = 99;
  64. sendToServer(imsURL,theString,theNum);
  65. }
  66. // zero out all clicks in clickCount
  67. function resetClick() {
  68. var c1 = clickCount;
  69. clickCount=0;
  70. clickPointX.length=1;
  71. clickPointY.length=1;
  72. currentMeasure=0;
  73. totalMeasure=0;
  74. lastTotMeasure=0;
  75. clickMeasure.length=1;
  76. selectCount=0;
  77. legendTemp=legendVisible;
  78. legendVisible=false;
  79. var theString = writeXML();
  80. var theNum = 99;
  81. //showRetrieveMap();
  82. sendToServer(imsURL,theString,theNum);
  83. if (toolMode==20) updateMeasureBox();
  84. }
  85. // remove last click from clickCount
  86. function deleteClick() {
  87. var c1 = clickCount;
  88. clickCount=clickCount-1;
  89. selectCount=0;
  90. if (clickCount<0) clickCount=0;
  91. if (clickCount>0) {
  92. totalMeasure = clickMeasure[clickCount]
  93. clickPointX.length=clickCount;
  94. clickPointY.length=clickCount;
  95. clickMeasure.length=clickCount;
  96. } else {
  97. totalMeasure=0;
  98. clickMeasure[0]=0;
  99. }
  100. currentMeasure=0;
  101. if (c1>0) {
  102. legendTemp=legendVisible;
  103. legendVisible=false;
  104. var theString = writeXML();
  105. var theNum = 99;
  106. sendToServer(imsURL,theString,theNum);
  107. }
  108. }
  109. //keep track of currently selected tool, and display it to user
  110. // set the imsMap cursor tool
  111. function clickFunction (toolName) {
  112. if (hasLayer("measureBox"))
  113. hideLayer("measureBox");
  114. switch(toolName) {
  115. // Zooming functions
  116. case "zoomin":
  117. // zoom in mode
  118. toolMode = 1;
  119. panning=false;
  120. selectBox=false;
  121. setCursor("theTop", "crosshair");
  122. modeBlurb = modeList[0];
  123. //if (useTextFrame) parent.TextFrame.document.location= appDir + "text.htm";
  124. break;
  125. case "zoomout":
  126. // zoom out mode
  127. toolMode = 2;
  128. panning=false;
  129. selectBox=false;
  130. setCursor("theTop", "crosshair");
  131. modeBlurb = modeList[1];
  132. //if (useTextFrame) parent.TextFrame.document.location= appDir + "text.htm";
  133. break;
  134. case "zoomlast":
  135. zoomBack();
  136. panning=false;
  137. zooming=false;
  138. selectBox=false;
  139. break;
  140. case "zoomactive":
  141. //alert(LayerExtent[ActiveLayerIndex]);
  142. var q = LayerExtent[ActiveLayerIndex].split("|");
  143. panning=false;
  144. zooming=false;
  145. selectBox=false;
  146. //zoomToEnvelope(parseFloat(q[0]),parseFloat(q[1]),parseFloat(q[2]),parseFloat(q[3]));
  147. var l = parseFloat(setDecimalString(q[0]));
  148. var b = parseFloat(setDecimalString(q[1]));
  149. var r = parseFloat(setDecimalString(q[2]));
  150. var t = parseFloat(setDecimalString(q[3]));
  151. var w = r-l;
  152. var h = t-b;
  153. // add a bit of a margin around the layer
  154. var wm = w * (5/100);
  155. var hm = h * (5/100);
  156. l = l - wm;
  157. r = r + wm;
  158. b = b - hm;
  159. t = t + hm;
  160. zoomToEnvelope(l,b,r,t);
  161. break;
  162. case "fullextent":
  163. fullExtent();
  164. break;
  165. // Pan functions
  166. case "pan":
  167. // pan mode
  168. toolMode = 3;
  169. zooming=false;
  170. selectBox=false;
  171. setCursor("theTop", "move");
  172. modeBlurb = modeList[2];
  173. //if (useTextFrame) parent.TextFrame.document.location= appDir + "text.htm";
  174. break;
  175. // Identify-Hyperlink functions
  176. case "identify":
  177. // identify mode - layer attributes - requires aimsIdentify.js
  178. panning=false;
  179. zooming=false;
  180. selectBox=false;
  181. shapeSelectBuffer = false;
  182. if (canQuery) {
  183. toolMode = 4;
  184. setCursor("theTop", "crosshair");
  185. modeBlurb = modeList[3];
  186. } else {
  187. alert(msgList[46]);
  188. }
  189. //alert("Function Not Implemented");
  190. showGeocode=false;
  191. if (useTextFrame) parent.TextFrame.document.location= appDir + "text.htm";
  192. hideLayer("measureBox");
  193. break;
  194. case "identifyall":
  195. // identify drill mode
  196. panning=false;
  197. zooming=false;
  198. selectBox=false;
  199. shapeSelectBuffer = false;
  200. toolMode = 5;
  201. if (canQuery) {
  202. setCursor("theTop", "crosshair");
  203. //modeBlurb = modeList[19]; // identify all
  204. modeBlurb = modeList[20]; // identify visible features
  205. //modeBlurb = modeList[3]; // identify
  206. } else {
  207. alert(msgList[46]);
  208. }
  209. //alert("Function Not Implemented");
  210. showGeocode=false;
  211. drawSelectBoundary=false;
  212. if (useTextFrame) parent.TextFrame.document.location= appDir + "text.htm";
  213. hideLayer("measureBox");
  214. break;
  215. case "hyperlink":
  216. // hyperlink mode - requires aimsIdentify.js
  217. var isOk = false;
  218. var j=-1;
  219. panning=false;
  220. zooming=false;
  221. selectBox=false;
  222. shapeSelectBuffer = false;
  223. toolMode = 15;
  224. modeBlurb = modeList[9];
  225. showGeocode=false;
  226. if (useTextFrame) parent.TextFrame.document.location= appDir + "text.htm";
  227. hideLayer("measureBox");
  228. var isOk = checkHyperLinkLayer(ActiveLayerIndex)
  229. if (isOk) {
  230. if (canQuery) {
  231. setCursor("theTop", "crosshair");
  232. } else {
  233. alert(msgList[46]);
  234. }
  235. //alert("Function Not Implemented");
  236. } else {
  237. currentHyperLinkLayer="";
  238. currentHyperLinkField="";
  239. alert(msgList[47]);
  240. }
  241. break;
  242. case "hyperlinkany":
  243. // hyperlink mode - requires aimsIdentify.js
  244. var j=-1;
  245. panning=false;
  246. zooming=false;
  247. selectBox=false;
  248. shapeSelectBuffer = false;
  249. toolMode = 30;
  250. modeBlurb = modeList[9];
  251. showGeocode=false;
  252. if (useTextFrame) parent.TextFrame.document.location= appDir + "text.htm";
  253. hideLayer("measureBox");
  254. if (canQuery) {
  255. setCursor("theTop", "crosshair");
  256. } else {
  257. alert(msgList[46]);
  258. }
  259. //alert("Function Not Implemented");
  260. break;
  261. // Measure-Unit function
  262. case "measure":
  263. panning=false;
  264. zooming=false;
  265. selectBox=false;
  266. shapeSelectBuffer = false;
  267. if (clickCount>0) {
  268. if (totalMeasure==0) resetClick();
  269. }
  270. toolMode = 20;
  271. setCursor("theTop", "crosshair");
  272. modeBlurb = modeList[12];
  273. if (clickType==1) {
  274. //if (useTextFrame) parent.TextFrame.location= appDir + "measure.htm";
  275. showLayer("measureBox");
  276. updateMeasureBox();
  277. }
  278. showGeocode=false;
  279. break;
  280. case "setunits":
  281. if (useTextFrame) {
  282. parent.TextFrame.location = "setUnits.htm";
  283. } else {
  284. window.open((appDir + "setUnits.htm"),"OptionWindow","width=575,height=120,scrollbars=yes,resizable=yes");
  285. }
  286. break;
  287. // Graphic Selection functions
  288. case "shape":
  289. panning=false;
  290. zooming=false;
  291. selectBox=false;
  292. shapeSelectBuffer = false;
  293. toolMode = 21;
  294. setCursor("theTop", "crosshair");
  295. modeBlurb = modeList[13];
  296. showGeocode=false;
  297. hideLayer("measureBox");
  298. break;
  299. case "selectbox":
  300. panning=false;
  301. zooming=false;
  302. // select mode - requires aimsSelect.js
  303. if (canQuery) {
  304. toolMode = 10;
  305. clickCount=0;
  306. showBuffer=false;
  307. setCursor("theTop", "crosshair");
  308. modeBlurb = modeList[4];
  309. } else {
  310. alert(msgList[46]);
  311. }
  312. //alert("Function Not Implemented");
  313. showGeocode=false;
  314. if (useTextFrame) parent.TextFrame.document.location= appDir + "text.htm";
  315. hideLayer("measureBox");
  316. break;
  317. case "selectpoint":
  318. panning=false;
  319. zooming=false;
  320. shapeSelectBuffer = false;
  321. // select mode - requires aimsSelect.js
  322. if (canQuery) {
  323. toolMode = 11;
  324. clickCount=0;
  325.  resetClick();
  326. setCursor("theTop", "hand");
  327. modeBlurb = modeList[5];
  328. } else {
  329. alert(msgList[46]);
  330. }
  331. //alert("Function Not Implemented");
  332. showGeocode=false;
  333. showBuffer=false;
  334. hideLayer("measureBox");
  335. break;
  336. case "selectline":
  337. panning=false;
  338. zooming=false;
  339. shapeSelectBuffer = false;
  340. // select mode - requires aimsSelect.js
  341. if (canQuery) {
  342. toolMode = 12;
  343. setCursor("theTop", "crosshair");
  344. hideLayer("measureBox");
  345. if (useTextFrame) {
  346. parent.TextFrame.document.location= appDir + "selectline.htm";
  347. } else {
  348. Win1 = open("selectline.htm","QueryWindow","width=575,height=150,scrollbars=yes,resizable=yes");
  349. }
  350. modeBlurb = modeList[6];
  351. } else {
  352. alert(msgList[46]);
  353. }
  354. //alert("Function Not Implemented");
  355. showGeocode=false;
  356. showBuffer=false;
  357. break;
  358. case "selectpoly":
  359. panning=false;
  360. zooming=false;
  361. shapeSelectBuffer = false;
  362. // select mode - requires aimsSelect.js
  363. if (canQuery) {
  364. toolMode = 13;
  365. setCursor("theTop", "crosshair");
  366. hideLayer("measureBox");
  367. if (useTextFrame) {
  368. parent.TextFrame.document.location= appDir + "selectpoly.htm";
  369. } else {
  370. Win1 = open("selectpoly.htm","QueryWindow","width=575,height=150,scrollbars=yes,resizable=yes");
  371. }
  372. modeBlurb = modeList[7];
  373. } else {
  374. alert(msgList[46]);
  375. }
  376. //alert("Function Not Implemented");
  377. showGeocode=false;
  378. showBuffer=false;
  379. break;
  380. case "selectshape":
  381. panning=false;
  382. zooming=false;
  383. shapeSelectBuffer = false;
  384. // select mode - requires aimsSelect.js
  385. if (canQuery) {
  386. toolMode = 16;
  387. setCursor("theTop", "crosshair");
  388. hideLayer("measureBox");
  389. if (useTextFrame) {
  390. parent.TextFrame.document.location= appDir + "select.htm";
  391. } else {
  392. Win1 = open("select.htm","QueryWindow","width=575,height=150,scrollbars=yes,resizable=yes");
  393. }
  394. modeBlurb = modeList[8];
  395. } else {
  396. alert(msgList[46]);
  397. }
  398. //alert("Function Not Implemented");
  399. showGeocode=false;
  400. showBuffer=false;
  401. break;
  402. ///*
  403. case "buffershape":
  404. panning=false;
  405. zooming=false;
  406. // interactive shape buffer - not implemented
  407. if (canQuery) {
  408. toolMode = 17;
  409. //toolMode = 16;
  410. shapeSelectBuffer = true;
  411. setCursor("theTop", "crosshair");
  412. hideLayer("measureBox");
  413. if (useTextFrame) {
  414. parent.TextFrame.document.location= appDir + "shapeBuffer.htm";
  415. } else {
  416. Win1 = open("shapeBuffer.htm","QueryWindow","width=575,height=150,scrollbars=yes,resizable=yes");
  417. }
  418. modeBlurb = modeList[11];
  419. } else {
  420. alert(msgList[46]);
  421. }
  422. //alert("Function Not Implemented");
  423. showGeocode=false;
  424. showBuffer=false;
  425. break;
  426. //*/
  427. // Geocode Function
  428. case "geocode":
  429. panning=false;
  430. zooming=false;
  431. selectBox=false;
  432. shapeSelectBuffer = false;
  433. // geocode mode - requires aimsGeocode.js
  434. hideLayer("measureBox");
  435. modeBlurb = modeList[14];
  436. geocodeAppMode = "locate";
  437. setupGeocode();
  438. //parent.TextFrame.document.location= appDir + "addmatch.htm";
  439. break;
  440. // Query - Search - Find functions
  441. //if ((toolName=="attributesel") || (toolName=="query")) {
  442. case "query":
  443. // query mode - requires aimsQuery.js
  444. panning=false;
  445. zooming=false;
  446. selectBox=false;
  447. shapeSelectBuffer = false;
  448. queryStartRecord=1;
  449. //toolMode=
  450. if (canQuery) {
  451. LayerFields.length=1;
  452. LayerFieldType.length=1;
  453. LayerFieldCount=0;
  454. toolMode=8;
  455. modeBlurb=modeList[15];
  456. fieldIndex=0;
  457. setQueryString="";
  458. hideLayer("measureBox");
  459. queryForm();
  460. } else {
  461. alert(msgList[46]);
  462. }
  463. showGeocode=false;
  464. showBuffer=false;
  465. break;
  466. case "storedquery":
  467. // storedquery mode - requires aimsQuery.js
  468. panning=false;
  469. zooming=false;
  470. selectBox=false;
  471. shapeSelectBuffer = false;
  472. queryStartRecord=1;
  473. toolMode=51;
  474. modeBlurb="Search";
  475. if (canQuery) {
  476. toolMode=51;
  477. modeBlurb=modeList[16];
  478. fieldIndex=0;
  479. setQueryString="";
  480. hideLayer("measureBox");
  481. getStoredQueries();
  482. } else {
  483. alert(msgList[46]);
  484. }
  485. showGeocode=false;
  486. showBuffer=false;
  487. break;
  488. case "find":
  489. //find
  490. toolMode=9;
  491. panning=false;
  492. zooming=false;
  493. selectBox=false;
  494. shapeSelectBuffer = false;
  495. queryStartRecord=1;
  496. if (canQuery) {
  497. LayerFields.length=1;
  498. LayerFieldType.length=1;
  499. LayerFieldCount=0;
  500. fieldIndex=0;
  501. setQueryString="";
  502. hideLayer("measureBox");
  503. modeBlurb = modeList[17];
  504. findForm();
  505. } else {
  506. alert(msgList[46]);
  507. }
  508. showGeocode=false;
  509. showBuffer=false;
  510. break;
  511. case "clearsel":
  512.  clearSelection();
  513.  break;
  514.  
  515. // Buffer function
  516. case "buffer":
  517. //buffer - requires aimsBuffer.js
  518. if (useBuffer) {
  519. if (checkSelected()) {
  520. toolMode = 25;
  521. shapeSelectBuffer = false;
  522. modeBlurb = modeList[18];
  523. writeBufferForm();
  524. } else {
  525. showBuffer=false;
  526. alert(msgList[48]);
  527. }
  528. } else {
  529. alert(msgList[49]);
  530. }
  531. break;
  532. case "options":
  533. writeOptionForm();
  534. break;
  535. // Print function
  536. case "print":
  537.  printIt();
  538.  break;
  539.  
  540. // custom modes
  541. case "dbidentify":
  542. panning=false;
  543. zooming=false;
  544. selectBox=false;
  545. shapeSelectBuffer = false;
  546. // identify mode - requires custom db query - not in basic
  547. if (canQuery) {
  548. toolMode = 40;
  549. setCursor("theTop", "hand");
  550. modeBlurb = modeList[3];
  551. } else {
  552. alert(msgList[46]);
  553. }
  554. //alert("Function Not Implemented");
  555. showGeocode=false;
  556. if (useTextFrame) parent.TextFrame.document.location= appDir + "text.htm";
  557. hideLayer("measureBox");
  558. break;
  559. case "extract":
  560.  extractIt();
  561.  break;
  562.  
  563. case "legend":
  564. if (aimsLegendPresent) {
  565. if (imsURL!="") {
  566. if (hasTOC) {
  567. if (legendVisible) {
  568. legendVisible=false;
  569. //writeLayerList();
  570. parent.TOCFrame.document.location=appDir+"toc.htm";
  571. } else {
  572. legendVisible=true;
  573. getLegend();
  574. }
  575. } else {
  576. legendVisible=true;
  577. getLegend();
  578. }
  579. } else {
  580. alert(msgList[45]);
  581. }
  582. } else {
  583. alert(msgList[50]);
  584. }
  585. break;
  586. case "layerlist":
  587. // put LayerList in separate window
  588. writeLayerListForm();
  589. break;
  590. case "address":
  591. panning=false;
  592. zooming=false;
  593. selectBox=false;
  594. shapeSelectBuffer = false;
  595. // geocode mode - requires aimsGeocode.js
  596. hideLayer("measureBox");
  597. modeBlurb = modeList[21];
  598. geocodeAppMode = "address";
  599. setCursor("theTop", "hand");
  600. toolMode = 7;
  601. //parent.TextFrame.document.location= appDir + "addmatch.htm";
  602. break;
  603. case "route":
  604. // route requires aimsRoute.js and RouteServer extension
  605. panning=false;
  606. zooming=false;
  607. selectBox=false;
  608. shapeSelectBuffer = false;
  609. // geocode mode - requires aimsGeocode.js
  610. hideLayer("measureBox");
  611. modeBlurb = modeList[21];
  612. geocodeAppMode = "route";
  613. setCursor("theTop", "hand");
  614. toolMode = 6;
  615. setupGeocode();
  616. break;
  617. default:
  618. alert(msgList[51]);
  619. }
  620. modeName=modeBlurb;
  621. if (useModeFrame) {
  622. writeModeFrame(modeBlurb);
  623. } else if ((drawFloatingMode) && (modeLayerOn)) {
  624. writeModeLayers(modeBlurb);
  625. //var theString = writeXML();
  626. sendMapXML();
  627. }
  628. }
  629. // check for mouseup
  630. function chkMouseUp(e) { 
  631. if ((toolMode == 1) && (zooming)) {
  632. stopZoomBox(e);
  633. }
  634. if ((toolMode == 2) && (zooming)) {
  635. stopZoomOutBox(e);
  636. }
  637. if ((toolMode == 3) && (panning)) {
  638. stopPan(e);
  639. }
  640. if ((toolMode == 10) && (selectBox)) {
  641. stopSelectBox(e);
  642. }
  643. return false;
  644. }
  645. // perform appropriate action with mapTool
  646. function mapTool (e) {
  647. var theButton= 0;
  648. // get the button pushed... if right, ignore... let browser do the popup... it will anyway
  649. if (isNav) {
  650. theButton = e.which;
  651. } else {
  652. theButton =window.event.button;
  653. }
  654. if (theButton==leftButton) {
  655. getImageXY(e);
  656. if ((mouseX>=0) && (mouseX<iWidth) && (mouseY>=0) && (mouseY<iHeight)) {
  657. //if ((!isNav) || (!is5up)) {
  658. if ((hasOVMap) && (ovIsVisible) && (mouseX<i2Width+ovBoxSize) && (mouseY<i2Height) && (ovMapIsLayer)) {
  659. //alert(mouseX + ", " + mouseY);
  660. ovMapClick(mouseX,mouseY);
  661. window.status = "On OV Map Area";
  662. //}
  663. } else {
  664. //alert(mouseX + "," + mouseY);
  665. switch(toolMode) {
  666. case 1:
  667. startZoomBox(e);
  668. return false;
  669. break;
  670. case 2:
  671. startZoomOutBox(e);
  672. return false;
  673. break;
  674. case 3:
  675. startPan(e);
  676. return false;
  677. break;
  678. case 4:
  679. identify(e);
  680. break;
  681. case 5:
  682. // identify all
  683. identifyAll(e);
  684. break;
  685. // custom modes
  686. ///*
  687. case 6:
  688. // route - requires custom route routine - not in default
  689. // requires aimsRoute.js, aimsGeocode.js
  690. //routeClick = routeClick + 1;
  691. //if (routeClick > 2) routeClick = 2;
  692. //setRouteXY()
  693. //writeRoutePage();
  694. address(e);
  695. break;
  696. //*/
  697. case 7:
  698. // address - requires custom reverseGeocode routine - not in default
  699. // requires aimsRoute.js, aimsGeocode.js
  700. address(e);
  701. break;
  702. //*/
  703. case 10:
  704. //select(e);
  705. startSelectBox(e);
  706. return false;
  707. break;
  708. case 11:
  709. //select point
  710. if (checkIfActiveLayerAvailable()) {
  711. select(e);
  712. }
  713. break;
  714. case 12:
  715. //select line
  716. if (checkIfActiveLayerAvailable()) {
  717. clickType=2;
  718. clickAddPoint();
  719. if (useTextFrame) {
  720. if (parent.TextFrame.document.title!==modeList[60]) {
  721. parent.TextFrame.document.location= appDir + "selectline.htm";
  722. }
  723. }
  724. }
  725. break;
  726. case 13:
  727. //select polygon
  728. if (checkIfActiveLayerAvailable()) {
  729. clickType=3;
  730. clickAddPoint();
  731. if (useTextFrame) {
  732. if (parent.TextFrame.document.title!==modeList[7]) {
  733. parent.TextFrame.document.location= appDir + "selectpoly.htm";
  734. }
  735. }
  736. }
  737. break;
  738. case 15:
  739. // hyperlink
  740. hyperLink(e);
  741. break;
  742. case 16:
  743. //select shape
  744. if (checkIfActiveLayerAvailable()) {
  745. clickType=2;
  746. clickAddPoint();
  747. if (useTextFrame) {
  748. if (parent.TextFrame.document.title!==modeList[8]) {
  749. parent.TextFrame.document.location= appDir + "select.htm";
  750. }
  751. }
  752. }
  753. break;
  754. ///* 
  755. case 17:
  756. //buffer shape - 
  757. if (checkIfActiveLayerAvailable()) {
  758. clickType=2;
  759. clickAddPoint();
  760. if (useTextFrame) {
  761. if (parent.TextFrame.document.title!=modeList[11]) {
  762. parent.TextFrame.document.location= appDir + "shapeBuffer.htm";
  763. }
  764. }
  765. }
  766. break;
  767. //*/
  768. case 20:
  769. // measure
  770. clickType=1;
  771. clickAddPoint();
  772. break;
  773. case 21:
  774. // shape
  775. clickType=4;
  776. clickAddPoint();
  777. break;
  778. case 30:
  779. // hyperlink
  780. hyperLinkAny(e);
  781. break;
  782. case 40:
  783. // db identify - requires custom db query - not in default
  784. if (aimsDBPresent) {
  785. matchDBLinkLayer(dbLinkLayer);
  786. dbIdentify(e);
  787. }
  788. break;
  789. default:
  790. if (toolMode>=1000) {
  791. customMapTool(e);
  792. }
  793. }
  794. }
  795. }
  796. }
  797. }
  798. // update measureBox layer
  799. function updateMeasureBox() {
  800. if (isNav4) {
  801. var theForm = document.layers["measureBox"].document.forms[0];
  802. } else {
  803. //var theForm = document.measureBox.forms[0];
  804. var theForm = document.forms[0];
  805. }
  806. var j = 1;
  807. for (var i=0;i<sUnitList.length;i++) {
  808. if (ScaleBarUnits==sUnitList[i]) j=i;
  809. }
  810. var u = Math.pow(10,numDecimals);
  811. var tMeas = 0;
  812. if (totalMeasure!=0) tMeas = parseInt(totalMeasure*u+0.5)/u;
  813. theForm.theMeasTotal.value = tMeas + " " + unitList[j];
  814. theForm.theMeasSegment.value = currentMeasure + " " + unitList[j];
  815. showLayer("measureBox");
  816. }
  817. // set the cursor of the specified layer
  818. function setCursor(divLayer, cursor) {
  819. var dObj = getLayer(divLayer);
  820. if (dObj!=null) {
  821. dObj.cursor = cursor;
  822. theCursor = dObj.cursor;
  823. }
  824. }