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

GIS编程

开发平台:

ASP/ASPX

  1. /*
  2.  * @class 动态图层处理
  3.  */
  4. function GmapIms(){
  5. this.CustonmsStartId = 5;
  6. this.bCustomLayer = false;
  7. this.mapservice;
  8. this.mapserver;
  9. this.mapport;
  10. this.ProApply = 0;
  11. this.LayerList = '';
  12. this.LayerArcXML = '';
  13. this.LayerArcXmlString = '';
  14. this.ActiveLayer = -1;
  15. this.sActiveLayer = '';
  16. /***************************************
  17. 设置参数
  18. ***************************************/
  19. this.getMapService = function(){
  20. return this.mapservice;
  21. }
  22. this.getMapServer = function(){
  23. return this.mapserver;
  24. }
  25. this.getMapPort = function(){
  26. return this.mapport;
  27. }
  28. this.getProApply = function(){
  29. return this.ProApply;
  30. }
  31. this.setActiveLayer = function(i){
  32. if (i<0) i=-1;
  33. this.ActiveLayer = i;
  34. return this.ActiveLayer;
  35. }
  36. this.getActiveLayer = function(){
  37. return this.ActiveLayer;
  38. }
  39. /**
  40.  * 地图服务器
  41.  */
  42. this.setMapService = function(val){
  43. this.mapservice = val;
  44. return this.mapservice;
  45. }
  46. /**
  47.  * 地图服务名
  48.  */
  49. this.setMapServer = function(val){
  50. this.mapserver = val;
  51. return this.mapserver;
  52. }
  53. /**
  54.  * 地图端口
  55.  */
  56. this.setMapPort = function(val){
  57. this.mapport = val;
  58. return this.mapport;
  59. }
  60. /**
  61.  * 程序应用类型
  62.  */
  63. this.setProApply = function(val){
  64. this.ProApply = val;
  65. return this.ProApply;
  66. }
  67. this.setActiveLayerString = function(memo){
  68. this.sActiveLayer = memo;
  69. return this.sActiveLayer;
  70. }
  71. this.getActiveLayerString = function(){
  72. return this.sActiveLayer;
  73. }
  74. /***************************************
  75. 处理集
  76. ***************************************/
  77. /**
  78.  * 加载动态图层
  79.  * 角色/工作区
  80.  * 角色(1)/工作区(2) 类型
  81.  */
  82. this.getMapCustomLayer = function(id,type){
  83. var _sTmp = id+','+type+',';
  84. this.setCustomLayer(this.getServer('CustomLayer',_sTmp));
  85. }
  86. this.getMapCustomLayerList = function(List){
  87. var _sTmp = List+',';
  88. this.setCustomLayer(this.getServer('CustomLayerList',_sTmp));
  89. }
  90. /**
  91.  * 设置动态图层XML列到参数
  92.  */
  93. this.setCustomLayer = function(memo){
  94. return this.LayerArcXML = memo;
  95. }
  96. /**
  97.  * 设置动态图层string列,用于arcxml
  98.  */
  99. this.setCustomLayerString = function(memo){
  100. this.LayerArcXmlString = memo;
  101. return this.LayerArcXmlString;
  102. }
  103. /**
  104.  * 修改层属性
  105.  */
  106.  this.setLayerVisible = function(arrLayerVisible){
  107.   //alert(LayerVisible);
  108.    var arrLayer = new Array();
  109.    var arrOldLayer = new Array();
  110.    var LayerNum = 0;
  111.    arrOldLayer = arrLayerVisible.split(',');
  112.    arrLayer = this.getCustomLayerString().split('visible="');
  113.    for (var i=1;i<arrLayer.length;i++){
  114.       startpos = arrLayer[i].indexOf('"');
  115.       len = arrLayer[i].length;
  116.       var Yu = '';
  117.       //alert(arrLayer[i]);
  118.       if (arrLayer[i].substring(arrLayer[i],startpos)=='true'){
  119.       Yu = arrLayer[i].substring(4,len);
  120.       arrLayer[i] = 'visible="'+ arrOldLayer[LayerNum] + Yu;
  121.       }else{
  122.       Yu = arrLayer[i].substring(5,len);
  123.       arrLayer[i] = 'visible="'+ arrOldLayer[LayerNum] + Yu;
  124.       }
  125.       LayerNum++;
  126.    }
  127.    //alert(arrLayer.join(' '));
  128.    this.setCustomLayerString(arrLayer.join(''));
  129.    this.setCustomLayer('<Table>'+this.getCustomLayerString()+'</Table>');
  130.  }
  131. /**
  132.  * 返回图层列
  133.  */
  134. this.getCustomLayer = function(){
  135. return this.LayerArcXML;
  136. }
  137. /**
  138.  * 返回图层列
  139.  */
  140. this.getCustomLayerList = function(){
  141. return this.LayerList;
  142. }
  143. /**
  144.  * 返回图层列
  145.  */
  146. this.getCustomLayerString = function(){
  147. return this.LayerArcXmlString;
  148. }
  149. /***********************************************************
  150. 和服务器交互
  151. ***********************************************************/
  152. /**
  153.  * 提交到服务器,返回结果
  154.  */
  155. this.getServer = function(liname,memo){
  156. var varList = new Array();
  157. if (memo!=''){
  158. varList = memo.split(',');
  159. }
  160. var typename = liname.toUpperCase();
  161. var returnstring = '';
  162. switch(typename){
  163. case 'MAPSERVER':
  164. //returnstring = qx.ImsDisposal.getArcIms().value;
  165. break;
  166. case 'CUSTOMLAYER':
  167. //this.setCustomLayerString(qx.CustomLayer.CreateCustomLayer(varList[0],this.getProApply(),this.getProApply(),this.CustonmsStartId,varList[1]).value);
  168. //returnstring = '<Table>'+this.getCustomLayerString()+'</Table>';
  169. break;
  170. case 'CUSTOMLAYERLIST':
  171. //this.setCustomLayerString(qx.CustomLayer.CreateCustonLayerList(varList[0],this.getProApply(),this.CustonmsStartId).value);
  172. //returnstring = '<Table>'+this.getCustomLayerString()+'</Table>';
  173. break;
  174. }
  175. return returnstring;
  176. }
  177. }//arcims end
  178. /*
  179.  * @class 处理xml类
  180.  */
  181. function XMLHelper(){
  182. this.xmlHttp;
  183. this.Init = function(){
  184.             if (window.ActiveXObject) {
  185.                 this.xmlHttp = new ActiveXObject("Microsoft.XMLDOM");
  186.             }
  187.             else if (window.XMLHttpRequest) {
  188.                 this.xmlHttp = new XMLHttpRequest();                
  189.             }
  190. }
  191. this.LoadXmlString = function(XMLString){
  192.      if (XMLString == ""){
  193.           return
  194.      }else{
  195.          this.xmlHttp.loadXML(XMLString);
  196.         
  197.      }
  198.     }
  199.     
  200.     /**
  201.      * 返回一个节点的函数
  202.      */
  203.     this.getLayerAtt = function(nodename,sName){
  204.      var nodeLength = this.xmlHttp.getElementsByTagName(nodename).length;
  205.      var sAttstring = '';
  206.      try{
  207.      for (var i=0;i<nodeLength-1;i++){
  208.      var elDocRoot=_MXml.xmlHttp.getElementsByTagName(nodename)[i];
  209. if (elDocRoot){
  210. var attrs = elDocRoot.attributes;
  211. sAttstring = attrs.getNamedItem(sName).value;
  212. }
  213.      }
  214.      }catch(e){
  215.      sAttstring="";
  216.      }
  217.      return sAttstring;
  218.     }
  219. /**
  220.      * 返回一个节点的函数的内容
  221.      */
  222. this.getNodeAtt = function(node,name){
  223. var AttString='';
  224. try{
  225. AttString = node.getNamedItem(name).value;
  226. }catch(e){
  227. AttString = '';
  228. }
  229. return AttString;
  230. }
  231. /**
  232.      * 设置一个节点的函数的值
  233.      */
  234. this.setNodeAtt = function(node,name,attString){
  235. if (node!=null){
  236. node.getNamedItem(name).value = attString;
  237. }
  238. }
  239. this.Init();
  240. }