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

GIS编程

开发平台:

ASP/ASPX

  1. // ArcIMSparam.js
  2. // javascript file with parameters specific to calling page
  3. //***************************************************************************
  4. //* parameters File for HTML Template     *
  5. //***************************************************************************
  6. // get machine name
  7. var hostName = document.location.host;
  8. // common portion of url
  9. var esriBlurb = "/servlet/com.esri.esrimap.Esrimap?ServiceName="
  10. // make URL for getting mapservice catalog
  11. var catURL = "http://" + hostName + esriBlurb + "catalog";
  12. // make prefix for URL
  13. var serverURL  = "http://" + hostName + esriBlurb;
  14. //*********************************************************************
  15. //* parameters set by Designer                      *
  16. //*********************************************************************
  17. var imsURL = 'http://'+hostName+'/servlet/com.esri.esrimap.Esrimap?ServiceName=BasicWorld';
  18. var imsOVURL =  'http://'+hostName+'/servlet/com.esri.esrimap.Esrimap?ServiceName=BasicWorld';
  19. var imsQueryURL = '';
  20. var imsGeocodeURL = '';
  21. //initial map extent
  22. var startLeft = 66.7507294824365;
  23. var startRight = 141.782060517563;
  24. var startTop = 54.73890812;
  25. var startBottom = 5.13765907999999;
  26. //maximum map extent
  27. var limitLeft = -185.03590202331566;
  28. var limitRight = 188.10622978210466;
  29. var limitTop = 90.0;
  30. var limitBottom = -90.0;
  31. var usePan=true;
  32. var usePanNorth=true;
  33. var usePanWest=true;
  34. var usePanEast=true;
  35. var usePanSouth=true;
  36. var useZoomIn=true;
  37. var useZoomOut=true;
  38. var useFullExtent=true;
  39. var useZoomActive=true;
  40. var useZoomLast=true;
  41. var useIdentify=true;
  42. var useMeasure=true;
  43. var useSetUnits=true;
  44. var useSelect=true;
  45. var useQuery=true;
  46. var useFind=true;
  47. var useGeocode=false;
  48. var useStoredQuery=false;
  49. var useClearSelect=true;
  50. var usePrint=true;
  51. var useGeoNetwork=false;
  52. var useBuffer=true;
  53. var useExtract=false;
  54. var MapUnits = "Degrees";
  55. var ScaleBarUnits = "Miles";
  56. // End of Designer set parameters
  57. var useHyperLink=false;
  58. var useHyperLinkAny=false;
  59. var useIdentifyAll=false;
  60. var useBufferShape=false; 
  61. // useHyperLink takes priority - both cannot be true
  62. if (useHyperLink) useHyperLinkAny=false;
  63. // useIdentify takes priority - both cannot be true
  64. if (useIdentify) useIdentifyAll=false;
  65. // allow debugging
  66. var setDebug=true;
  67. /**************************************
  68. * Basic Map parameters
  69. **************************************/
  70. // variables for setting component colors
  71. var mapBackColor = "";
  72. var ovBoxColor = "#ff0000";
  73. var ovBoxSize = 3;
  74. var zoomBoxColor = "#ff0000";
  75. // variables for using individual components
  76. var hasOVMap = true;
  77. var hasTOC = true;
  78. var useModeFrame = true;
  79. // variables for map pixel offset from upper left corner of frame
  80. // horizontal offset
  81. var hspc = 0;
  82. // vertical offset
  83. var vspc = 0;
  84. //panning factor for arrow buttons
  85. var panFactor = 85/100;
  86. //zoom factors for v.3
  87. var zoomFactor = 2
  88. // margin factor for zooming in on selected lines and polygons - based on feature width and height. . . margin will be selectMargin * width or height
  89. var selectMargin = 25/100;
  90. // margin margin factor for zooming in on selected points - based on full extent. . . margin will be selectPointMargin * fullWidth or fullHeight
  91. var selectPointMargin = 25/1000
  92. // show the scale factor
  93. var showScalePercent=true;
  94. // display coords in status line
  95. var showXYs=true;
  96. // Have ArcXML responses URL encoded? Will not work with multi-byte characters
  97. var doURLencode = false;
  98. // automatically adjust for ArcMapServer, if necessary
  99. // North Arrow size is smaller from ArcMapServer
  100. var autoAdjustForArcMapServer = true;
  101. // if it is an ArcMap Service, is it using a Personal Database?
  102. // critical for correct sql expression on queries on date fields
  103. // Syntax for date fields is different for layers from a Personal Database than for other ArcMap Service data sources
  104. var isPersonalDatabase = false;
  105. //variables for MapDrawing
  106. // North Arrow
  107. var drawNorthArrow = true;
  108. var NorthArrowType = "4";
  109. var NorthArrowSize = "15";
  110. var NorthArrowCoords = "20 35";
  111. var NorthArrowAngle = "0";
  112. // Scale Bar
  113. var drawScaleBar = true;
  114. // MapUnits=DEGREES,FEET,METERS
  115. // can MapUnits be changed by user?
  116. var setMapUnits=false;
  117. // ScaleBarUnits=KILOMETERS,METERS,MILES,FEET
  118. var ScaleBarBackground = "false";
  119. var ScaleBarBackColor = "0,0,0";
  120. var ScaleBarFontColor = "0,0,0";
  121. var ScaleBarColor = "128,128,128";
  122. var ScaleBarFont = "";
  123. var ScaleBarStyle = "Regular";
  124. var ScaleBarRound = "1";
  125. var ScaleBarSize = "9";
  126. var ScaleBarWidth = "5";
  127. var ScaleBarPrecision = 2;
  128. var numDecimals = ScaleBarPrecision;
  129. // Scale Bar 2
  130. var drawScaleBar2 = false;
  131. var ScaleBar2Units = "KILOMETERS";
  132. var ScaleBar2Background = "false";
  133. var ScaleBar2BackColor = "0,0,0";
  134. var ScaleBar2FontColor = "0,0,0";
  135. var ScaleBar2Color = "128,128,128";
  136. var ScaleBar2Font = "";
  137. var ScaleBar2Style = "Regular";
  138. var ScaleBar2Round = "1";
  139. var ScaleBar2Size = "9";
  140. var ScaleBar2Width = "5";
  141. var ScaleBar2Precision = 2;
  142. // Copyright blurb
  143. var drawCopyright = true;
  144. var CopyrightFont = "";
  145. var CopyrightStyle = "Regular";
  146. var CopyrightSize = "8";
  147. var CopyrightCoords = "3 3";
  148. var CopyrightColor = "0,0,0";
  149. var CopyrightBackground = "True";
  150. var CopyrightBGColor = "255,255,255";
  151. var CopyrightGlow = "False";
  152. var CopyrightGlowColor = "255,255,255";
  153. var CopyrightShadow = "False";
  154. var CopyrightShadowColor = "32,32,32";
  155. var CurrentYear = new Date().getFullYear();
  156. var CopyrightText = "Map created with ArcIMS - Copyright (C) 1992-" +  CurrentYear + " ESRI Inc.";
  157. // place bar behind Copyright text and scalebars
  158. var drawBottomBar = false;
  159. var bottomBarColor = "255,255,255";
  160. var bottomBarOutline = "0,0,0";
  161. var bottomBarHeight = "18";
  162. var ovImageVar;
  163. var ovBorderWidth = 2;
  164. var ovExtentBoxSize = 2;
  165. // map image background transparent? - requires gif or png8 types
  166. var mapTransparent=false;
  167. // setup test for Nav 4.0
  168. var isIE = false;
  169. var isNav = (navigator.appName.indexOf("Netscape")>=0);
  170. var isNav4 = false;
  171. var isIE4 = false;
  172. var is5up = false;
  173. //alert(navigator.appVersion);
  174. if (isNav) {
  175. if (parseFloat(navigator.appVersion)<5) {
  176. isNav4=true;
  177. //alert("Netscape 4.x or older");
  178. } else {
  179. is5up = true;
  180. }
  181. } else {
  182. isIE4=true;
  183. isIE=true;
  184. if ((navigator.appVersion.indexOf("MSIE 5")>0) || (navigator.appVersion.indexOf("MSIE 6")>0)) {
  185. isIE4 = false;
  186. is5up = true;
  187. //alert("IE5");
  188. }
  189. }
  190. /**************************************
  191. * Extended Map parameters
  192. **************************************/
  193. // variables for ovmap offset
  194. var ovHspc = 0;
  195. var ovVspc = 0;
  196. // color for Main Map zoombox in html hex RGB format
  197. //var zoomBoxColor = "#ff0000";
  198. // index of initial active layer. . . if more than or equal to layer count top layer used
  199. var ActiveLayerIndex=99;
  200. // variables for using individual components
  201. var useTextFrame=true;
  202. // use external window for dialogs
  203. var useExternalWindow=false;
  204. // colors for tables 
  205. var textFrameBackColor="Silver";
  206. var tableBackColor="White";
  207. var textFrameTextColor="Black";
  208. var textFrameLinkColor="Blue";
  209. var textFrameFormColor="Gray";
  210. // LayerList visible at service load
  211. var showTOC=true;
  212. // set layer visibility according to LayerList or by custom programming
  213. var toggleVisible = true;
  214. // set layer visibility of OVMap according to LayerList or by custom programming
  215. // imsURL must equal imsOVMap - depends on one LayerList
  216. var toggleOVVisible = false;
  217. // will the LayerList show all layers, not just those available at current scale
  218. var listAllLayers = false;
  219. // toggle the check of non-listing of layers in LayerList and Legend
  220. // if true, noListLayer array must have an element defined for each layer
  221. var hideLayersFromList=false;
  222. // layers that will be listed in the LayerList or Legend
  223. // Note: This does not affect map display
  224. var noListLayer = new Array();
  225. // noListLayer[0] = false;
  226. // noListLayer[1] = false;
  227. // noListLayer[2] = false;
  228. // noListLayer[3] = true; // this one will not be listed
  229. // noListLayer[4] = false;
  230. // Mode on floating layer
  231. var drawFloatingMode = false;
  232. var modeLayerOn = false;
  233. var modeLayerColor = "Black";
  234. var modeLayerShadowColor = "White";
  235. var modeLayerFont = "Arial";
  236. var modeLayerSize = "4";
  237. // does the overview map a layer on top of map?... 
  238. var ovMapIsLayer=true;
  239. var webParams = "";
  240. if (parent.MapFrame!=null) {
  241. webParams = parent.document.location.search;
  242. } else {
  243. webParams = document.location.search;
  244. }
  245. /**************************************
  246. * Interactive Map parameters
  247. **************************************/
  248. // Click points - Measure/Shape Select/Shape Buffer
  249. var clickMarkerColor="255,0,0";
  250. var clickMarkerType="Circle";
  251. var clickMarkerSize="6";
  252. /**************************************
  253. * Identify/Select/Query/Buffer parameters
  254. **************************************/
  255. // search tolerance in pixels around click
  256. var pixelTolerance=2;
  257. // color of selected features in decimal RGB format
  258. var selectColor="255,255,0";
  259. // color of highlighted feature in decimal RGB format
  260. var highlightColor="255,0,0";
  261. // level of transparency of selected and highlighted color
  262. var transparentLevel = "0.5";
  263. // zoom to selected feature if only one is returned?
  264. var zoomToSingleSelect = false;
  265. // use only unique values in sample field value lists
  266. var onlyUniqueSamples = true;
  267. // are string queries case insensitive?
  268. // false by default to match Java Viewer and ArcExplorer
  269. var queryCaseInsensitive=false;
  270. // fields to be returned in identify/selection/query request. . . #ALL#=all fields
  271. var selectFields= "#ALL#";
  272. //var selectFields= "#ID# #SHAPE#";
  273. // swap out the list of returned fields? 
  274. //If true, a list must be defined in selFieldList[n] for each layer to update selectFields
  275. var swapSelectFields=false;
  276. // array for each layer's returned fields if swapSelectFields=true
  277. var selFieldList = new Array();
  278. // sample set for world - if not #ALL#, id and shape fields required. Separate with a space
  279. selFieldList[0]="NAME COUNTRY POPULATION #ID# #SHAPE#";
  280. selFieldList[1]="URL #ID# #SHAPE#";
  281. selFieldList[2]="#ALL#";
  282. selFieldList[3]="#ALL#";
  283. selFieldList[4]="#ALL#";
  284. selFieldList[5]="NAME CONTINENT #ID# #SHAPE#";
  285. selFieldList[6]="#ALL#";
  286. // use the field alias in the data display? 
  287. //If true, a list must be defined in fieldAliasList[n] for each layer defining aliases for those fields needing them
  288. var useFieldAlias=false;
  289. // array for aliases for each layer's returned fields if useFieldAlias=true
  290. var fieldAliasList  = new Array();
  291. // sample set for world - fieldname:alias pairs separated by a bar (|)... if no aliases, use empty string ("")
  292. fieldAliasList[0]="NAME:City Name|POPULATION:Population";
  293. fieldAliasList[1]="";
  294. fieldAliasList[2]="";
  295. fieldAliasList[3]="";
  296. fieldAliasList[4]="";
  297. fieldAliasList[5]="NAME:CountryName";
  298. fieldAliasList[6]="";
  299. // Hide the ID field display? The ID Field must be included in field list, but we don't have to show it.
  300. var hideIDFieldData = false;
  301. // Hide the shape field display? The Shape Field must be included in field list, but we don't have to show it.
  302. var hideShapeFieldData = false;
  303. // parameters for setting up hyperlinks in data display
  304. var hyperLinkLayers = new Array(); // layers to have hyperlink
  305. var hyperLinkFields = new Array(); // field in those layers to be used for hyperlink
  306. var hyperLinkPrefix = new Array();  // prefix (if any) to place before field value to make hyperlink url
  307. var hyperLinkSuffix = new Array();  // suffix (if any) to place after field value to make hyperlink url
  308. /*
  309. hyperLinkLayers[0] = "Image";
  310. hyperLinkFields[0] = "HOT";
  311. hyperLinkPrefix[0] = "/gisdata/world/images/";
  312. hyperLinkSuffix[0] = ".jpg";
  313. */
  314. // will the returned data be displayed in text frame?
  315. var showSelectedData=true;
  316. // will the returned features be drawn?
  317. var showSelectedFeatures=true;
  318. // maximum number of features returned from query
  319. var maxFeaturesReturned=25;
  320. // for ID All - List all visible layers in response - default is false
  321. // if false only visible layers with idenitified features written to table
  322. // if true the names of all visible layers will be diplayed even if no features returned
  323. var listAllLayersInIDAll = false;
  324. // number of data samples retrieved for query form
  325. var numberDataSamples = 50;
  326. /**************************************
  327. * Legend parameters - aimsLegend.js
  328. **************************************/
  329. // legend map size
  330. var legWidth=170;
  331. var legHeight=300;
  332. var legFont="Arial";
  333. var legTitle="Legend";
  334. /**************************************
  335. * Options parameters - aimsOptions.js
  336. **************************************/
  337. // allowing user to set options
  338. var allowOptions=false;
  339. /**************************************
  340. * ClassRender parameters - aimsClassRender.js
  341. **************************************/
  342. // parameters for custom class rendering... overrides default renderer
  343. var ClassRenderLayer = new Array();  // layers to have custom renderers
  344. var ClassRenderString = new Array(); // initial custom renderer XML string for the layers
  345. ClassRenderLayer[0] = "Cities";
  346. ClassRenderString[0] = "";
  347. /*
  348. ClassRenderString[0] ='<VALUEMAPRENDERER lookupfield="population">n<RANGE LOWER="0" UPPER="1000000">n<SIMPLEMARKERSYMBOL color="255,0,255" type="circle" size="4" />n</RANGE>';
  349. ClassRenderString[0] = ClassRenderString[0] + '<RANGE LOWER="1000000" UPPER="2500000">n<SIMPLEMARKERSYMBOL color="255,0,255" type="circle" size="6" />n</RANGE>';
  350. ClassRenderString[0] = ClassRenderString[0] + '<RANGE LOWER="2500000" UPPER="5000000">n<SIMPLEMARKERSYMBOL color="255,0,255" type="circle" size="9" />n</RANGE>';
  351. ClassRenderString[0] = ClassRenderString[0] + '<RANGE LOWER="5000000" UPPER="10000000">n<SIMPLEMARKERSYMBOL color="255,0,255" type="circle" size="12" />n</RANGE>';
  352. ClassRenderString[0] = ClassRenderString[0] + '<RANGE LOWER="10000000" UPPER="30000000">n<SIMPLEMARKERSYMBOL color="255,0,255" type="circle" size="16" />n</RANGE>n</VALUEMAPRENDERER>';
  353. */
  354. /**************************************
  355. * Geocode parameters - aimsGeocode.js
  356. **************************************/
  357. // maximum geocode candidates returned - default = 20
  358. var maxGeocodeCandidates=20;
  359. // minimal acceptable geocode score for candidate
  360. var minGeocodeScore=50;
  361. var geocodePointColor = "255,0,0";
  362. var geocodePointSize = "15";
  363. var geocodeLabelSize = "12";
  364. var geocodePointType = "star";
  365. var currentGeocodePointIndex = 0;
  366. // custom functions needed for Reverse Geocoding - RouteServer extension required
  367. var useReverseGeocode = false;
  368. var useRoute=false;
  369. // the starting point. . . it all starts here on loading
  370. function checkParams() {
  371. appDir = getPath(document.location.pathname);
  372. // global for overview map. . . change if not on same frame as Map
  373. ovImageVar = document.ovImage;
  374. debugOn = 0;
  375. if (parent.TextFrame==null) {
  376. useTextFrame = false;
  377. useExternalWindow=true;
  378. }
  379. if (!hasLayer("measureBox")) useMeasure=false;
  380. if ((!useMeasure) && (!drawScaleBar)) useSetUnits=false;
  381. if (ovImageVar==null) hasOVMap = false;
  382. if (parent.TOCFrame==null) hasTOC = false;
  383. if (parent.ModeFrame==null) useModeFrame = false;
  384. if (isIE) {
  385. if (hasLayer("theTop")) document.all.theTop.style.cursor = "crosshair";
  386. if (hasOVMap) ovImageVar.style.cursor = "hand";
  387. }
  388. if (hasOVMap) {
  389. // size of ov map image
  390. i2Width = parseInt(ovImageVar.width);
  391. i2Height = parseInt(ovImageVar.height);
  392. forceNewOVMap = false;
  393. // position of ov map
  394. //ovMapLeft = iWidth - (i2Width + 6);
  395. //ovMapTop = 2;
  396. }
  397. if (webParams!="") {
  398. //alert(webParams);
  399. getCommandLineParams(webParams);
  400. }
  401. // if starting extents zero'd then flag to get start from mapservice
  402. if ((startLeft!=0) && (startRight!=0)) getStartingExtent=false;
  403. // if limit extents zero'd then flag to get max from mapservice
  404. if ((limitLeft!=0) && (limitRight!=0)) {
  405. getLimitExtent=false;
  406. enforceFullExtent=true;
  407. }
  408. if (ovBoxColor=="") ovBoxColor = "255,0,0";
  409. //ovBoxColor = convertHexToDec(ovBoxColor);
  410. checkCoords();
  411. if (aimsNavigationPresent) {
  412. // Set up event capture for mouse movement
  413. if (isNav4) {
  414. document.captureEvents(Event.MOUSEMOVE);
  415. document.captureEvents(Event.MOUSEDOWN);
  416. document.captureEvents(Event.MOUSEUP);
  417. //document.captureEvents(Event.MOUSEOUT);
  418. }
  419. document.onmousemove = getMouse;
  420. //document.onmousedown = chkMouseDown;
  421. document.onmousedown = mapTool;
  422. document.onmouseup = chkMouseUp;
  423. //document.onmouseout = chkMouseOut;
  424. } else {
  425. usePan=false;
  426. usePanNorth=false;
  427. usePanWest=false;
  428. usePanEast=false;
  429. usePanSouth=false;
  430. useMeasure=false;
  431. useZoomIn=false;
  432. useZoomOut=false
  433. //useFullExtent=false;
  434. useZoomActive=false;
  435. //useZoomLast=false;
  436. }
  437. if (!aimsBufferPresent) {
  438. useBuffer=false;
  439. }
  440. if (!aimsQueryPresent) {
  441. aimsBufferPresent=false;
  442. useQuery=false;
  443. useFind=false;
  444. useBuffer=false;
  445. useStoredQuery=false;
  446. }
  447. if (!aimsSelectPresent) {
  448. aimsQueryPresent=false;
  449. aimsBufferPresent=false;
  450.   useSelect=false;
  451. useQuery=false;
  452. useFind=false;
  453. useBuffer=false;
  454. useStoredQuery=false;
  455. useClearSelect=false;
  456. }
  457. if (!aimsIdentifyPresent) {
  458. aimsSelectPresent=false;
  459. aimsQueryPresent=false;
  460. aimsBufferPresent=false;
  461. canQuery=false;
  462. useIdentify=false;
  463.   useSelect=false;
  464. useQuery=false;
  465. useFind=false;
  466. useBuffer=false;
  467. useStoredQuery=false;
  468. useHyperLink=false;
  469. useHyperLinkAny=false;
  470. useIdentifyAll=false;
  471. }
  472. if (!aimsGeocodePresent) {
  473. useGeocode=false;
  474. useReverseGeocode=false;
  475. }
  476. if (!aimsPrintPresent) {
  477. usePrint=false;
  478. }
  479. if (!aimsOptionsPresent) {
  480. allowOptions=false;
  481. }
  482. if ((aimsXMLPresent) && (aimsMapPresent)) {
  483. if (aimsClickPresent) clickFunction("zoomin");
  484. if (parent.ToolFrame!=null) parent.ToolFrame.document.location="toolbar.htm";
  485. startMap();
  486. } else {
  487. alert(msgList[0]);
  488. }
  489. }