gis.map.js 60 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417141814191420142114221423142414251426142714281429143014311432143314341435143614371438143914401441144214431444144514461447144814491450145114521453145414551456145714581459146014611462146314641465146614671468146914701471147214731474147514761477147814791480148114821483148414851486148714881489149014911492149314941495149614971498149915001501150215031504150515061507150815091510151115121513151415151516151715181519152015211522152315241525152615271528152915301531153215331534153515361537153815391540154115421543154415451546154715481549155015511552155315541555155615571558155915601561156215631564156515661567156815691570157115721573157415751576157715781579158015811582158315841585158615871588158915901591159215931594159515961597159815991600160116021603160416051606160716081609161016111612161316141615161616171618161916201621162216231624162516261627162816291630163116321633163416351636163716381639164016411642164316441645164616471648164916501651165216531654165516561657165816591660166116621663166416651666166716681669167016711672167316741675167616771678167916801681168216831684168516861687168816891690169116921693169416951696169716981699170017011702170317041705170617071708170917101711171217131714171517161717171817191720172117221723172417251726172717281729173017311732173317341735173617371738173917401741174217431744174517461747174817491750175117521753175417551756175717581759176017611762176317641765176617671768176917701771177217731774177517761777177817791780178117821783178417851786178717881789179017911792179317941795179617971798179918001801180218031804180518061807180818091810181118121813181418151816181718181819182018211822182318241825182618271828182918301831183218331834183518361837183818391840184118421843184418451846184718481849185018511852185318541855185618571858185918601861186218631864186518661867186818691870187118721873187418751876187718781879188018811882188318841885188618871888188918901891189218931894189518961897189818991900190119021903190419051906190719081909191019111912
  1. var layer,layeryx,locationLayer,gkvectorLayer,gqvectorLayer,zyqvectorLayer,markersLayer,jyrvectorLayer,boatLayer,modifyvectorLayer;
  2. var mdvectorLayer,axvectorLayer;
  3. var modifyFeature,nowModifyFeature;
  4. var uflldLayerMap;
  5. //是否已经有图形
  6. var isHaveGeo = false;
  7. var gis = gis || {};
  8. gis.script = function() {
  9. };
  10. //gis.script.url="http://localhost:8090/iserver/services/map-world/rest/maps/World";
  11. gis.script.phase={init:"init",refresh:"refresh",cbrefresh:"cbrefresh"};
  12. gis.script.layerloadover=false;
  13. gis.script.controlLayer=false;
  14. gis.script.subLayers = new Array();
  15. //gis.script.iserverUrl=iserverUrl||"http://"+serverName+":8090/iserver/services";
  16. //gis.script.url=gis.script.iserverUrl+"/map-gk/rest/maps/gist";
  17. //gis.script.yxurl=gis.script.iserverUrl+"/map-gk/rest/maps/gist";
  18. gis.script.url=gisConfigBean.config.sldt.url;
  19. gis.script.yxurl=gisConfigBean.config.yxdt.url;
  20. gis.script.markerAttr={};
  21. gis.script.yxslqh=false;
  22. gis.script.markersLayers={};
  23. gis.script.markersLayersInfo={};
  24. gis.script.selectallLayers={};
  25. gis.script.tckztreeloadover=false;
  26. gis.script.layersInitconfig=[];
  27. gis.script.layersInitconfigObject={};
  28. /*
  29. * 读取配置信息,动态加载图层
  30. */
  31. gis.script.initlayersconfig = function() {
  32. //{"gkvectorLayer":{"id":"gkvectorLayer","Model":{"ty":{"id":"ty","isshow":"true"},"cbdt":{"id":"cbdt","isshow":"false"}},"label":"港口图层"}}
  33. gis.script.layersInitconfig=[];
  34. gis.script.layersInitconfigObject={};
  35. if(gis.script.isBlank(treeType)){
  36. treeType="ty";
  37. }
  38. if(layerConfig){
  39. for(var n in layerConfig){
  40. var data=layerConfig[n];
  41. if(data&&data.Model&&data.Model[treeType]){
  42. var modeldata=jQuery.extend(true, {}, data.Model[treeType]);
  43. modeldata.layerName=n;
  44. gis.script.layersInitconfig.push(modeldata);
  45. gis.script.setlayersInitconfigObject(data.name||data.id,modeldata);
  46. }
  47. }
  48. }
  49. //根据orderby排序,以便按层次加载图层
  50. gis.script.layersInitconfig.sort(function(a,b){
  51. if(gis.script.isNum(a.orderby)&&gis.script.isNum(b.orderby)){
  52. //console.log("CCC1:",parseFloat(a.orderby));
  53. return parseFloat(a.orderby)<parseFloat(b.orderby)?-1:1;
  54. }
  55. return 0;
  56. });
  57. //console.log("CCC1:",gis.script.layersInitconfig);
  58. //console.log("CCC2:",gis.script.layersInitconfigObject);
  59. }
  60. /*
  61. * 配置信息存入layersInitconfigObject,方便读取图层配置信息
  62. */
  63. gis.script.setlayersInitconfigObject = function(key,obj) {
  64. //alert(key);
  65. var info=gis.script.layersInitconfigObject[key];
  66. if(!info){
  67. gis.script.layersInitconfigObject[key]=[];
  68. info=gis.script.layersInitconfigObject[key];
  69. }
  70. info.push(obj);
  71. }
  72. /*
  73. * 控制图层信息,可以通过设置动态显示图层。
  74. */
  75. gis.script.settrendsLayer=function (key,isshow){
  76. var info=gis.script.layersInitconfigObject[key];
  77. if(info&&info.length){
  78. for(var kk=0;kk<info.length;kk++){
  79. var obj=info[kk];
  80. if(obj){
  81. obj.isshow=isshow;
  82. }
  83. }
  84. }
  85. //console.log("CCC1-1:",gis.script.layersInitconfig);
  86. }
  87. /*
  88. * 地图可显示的比例尺
  89. */
  90. gis.script.scales=[2060000,1180000,640000, 320000, 160000, 80000, 40000, 20000, 10000, 5000, 2500,1250];
  91. /*
  92. gis.script.scales=[0.0000008234577570,0.000001180591620,0.0000020811127177082523,0.0000041622254354165045,0.000008324450870833009,0.000016648901741666018,
  93. 0.000033297803483332036,0.00006659560696666407,0.00013319121393332814,0.0002663824278666563,0.0005327648557333126,
  94. 0.0010655297114666252,0.0021310594229332503,0.004262118845866501,0.008524237691733001,0.017048475383466002];
  95. */
  96. /*
  97. * 初始化,加载SuperMap以及地图影像,根据分辨率动态设置按钮位置
  98. */
  99. gis.script.init = function() {
  100. var bgrounddiv=$("#bgrounddiv");
  101. //bgrounddiv.css("width",bgrounddiv.width()-2);
  102. //alert(bgrounddiv.offset().left);
  103. $("#yxslqh").css("top",bgrounddiv.offset().top+10);
  104. //$("#yxslqh").css("left",bgrounddiv.offset().left+23);
  105. $("#yxslqh").css("right",25);
  106. $("#yxslqh img").attr("src",imgPath+'/satellite.png');
  107. $("#yxslqh img").bind("click",function(e){
  108. if(gis.script.layerloadover&&layer&&layeryx){
  109. if(gis.script.yxslqh){
  110. layer.setVisibility(true);
  111. layeryx.setVisibility(false);
  112. map.setBaseLayer(layer);
  113. $(this).attr("src",imgPath+'/satellite.png');
  114. }else{
  115. layer.setVisibility(false);
  116. layeryx.setVisibility(true);
  117. map.setBaseLayer(layeryx);
  118. $(this).attr("src",imgPath+'/map.png');
  119. }
  120. gis.script.yxslqh=!gis.script.yxslqh;
  121. }
  122. //gis.script[this.id](this);
  123. });
  124. annarray=['tckz','cbss','txbj','txsz','txsc','txpstg'];
  125. for(var ii=0;ii<annarray.length;ii++){
  126. var annobj=$("#"+annarray[ii]);
  127. if(annobj&&annobj.length){
  128. annobj.css("top",bgrounddiv.offset().top+10);
  129. // annobj.css("right",32+52*(ii+1));
  130. /*annobj.bind("mousedown",function(){
  131. $(this).css("border","1px solid transparent");
  132. });
  133. annobj.bind("mouseup",function(){
  134. $(this).css("border","0px solid transparent");
  135. });
  136. annobj.bind("mouseout",function(){
  137. $(this).css("border","0px solid #A5AAB4");
  138. });*/
  139. /*
  140. annobj.bind("click",function(e){
  141. $("#"+this.id+"list").show("slow");
  142. });
  143. */
  144. annobj.bind("click",function(e){
  145. /*
  146. var lobj=$("#"+this.id+"list");
  147. if(lobj.is(':hidden')){
  148. for(var ik=0;ik<annarray.length;ik++){
  149. $("#"+annarray[ik]+"list").hide("slow");
  150. }
  151. lobj.show("slow");
  152. }else{
  153. lobj.hide("slow");
  154. }
  155. //lobj.show("slow");
  156. */
  157. gis.script.buttonclickFun(this.id);
  158. });
  159. }
  160. }
  161. $("#tckz_close").bind("click",function(e){
  162. $("#tckzlist").hide("slow");
  163. gis.script.buttonimgObjRestore('tckz');
  164. });
  165. /*
  166. $("#tckz").css("top",bgrounddiv.offset().top+10);
  167. //$("#yxslqh").css("left",bgrounddiv.offset().left+23);
  168. $("#tckz").css("right",85);
  169. $("#tckz img").bind("click",function(e){
  170. $("#tckzlist").show("slow");
  171. });
  172. $("#tckz_close").bind("click",function(e){
  173. $("#tckzlist").hide("slow");
  174. });
  175. $("#tckz").bind("mousedown",function(){
  176. $("#tckz").css("border","1px solid transparent");
  177. });
  178. $("#tckz").bind("mouseup",function(){
  179. $("#tckz").css("border","0px solid transparent");
  180. });
  181. $("#tckz").bind("mouseover",function(){
  182. //border:0px solid #A5AAB4;
  183. //$("#tckz").css("border","1px solid transparent");
  184. });
  185. $("#tckz").bind("mouseout",function(){
  186. //border:0px solid #A5AAB4;
  187. $("#tckz").css("border","0px solid #A5AAB4");
  188. });
  189. */
  190. $('#banner').mousedown(function(event) {
  191. var isMove = true;
  192. var abs_x = event.pageX - $('div.moveBar').offset().left;
  193. var abs_y = event.pageY - $('div.moveBar').offset().top;
  194. $(document).mousemove(function(event) {
  195. if (isMove) {
  196. var obj = $('div.moveBar');
  197. obj.css({
  198. 'left' : event.pageX - abs_x,
  199. 'top' : event.pageY - abs_y
  200. });
  201. }
  202. }).mouseup(function() {
  203. isMove = false;
  204. });
  205. });
  206. /*
  207. $.each(uiaccordion.find('a').parent(), function(i,val){
  208. var ua=$(val);
  209. alert(i+">>"+val.id);
  210. });
  211. */
  212. /*
  213. var footer=parent.window.document.getElementById("footer");
  214. if(footer){
  215. //alert($(parent.window.document.getElementById("footer")).height());
  216. bgrounddiv.css("height",bgrounddiv.height()-$(footer).height());
  217. }
  218. */
  219. //map = new SuperMap.Map("bgrounddiv");//,{allOverlays: true}
  220. map = new SuperMap.Map("bgrounddiv",{allOverlays: true,controls: [
  221. new SuperMap.Control.Navigation({
  222. dragPanOptions: {
  223. enableKinetic: true
  224. }
  225. })]
  226. });
  227. //scales:[1 / 147914677, 1 / 73957338, 1 / 36978669, 1 / 18489334, 1 / 9244667, 1 / 4622333, 1 / 2311166, 1 / 1000000]
  228. //map.addControl(new SuperMap.Control.ScaleLine());
  229. //map.addControl(new SuperMap.Control.ScaleLine(),new SuperMap.Pixel(bgrounddiv.width()-120,bgrounddiv.height()-60));
  230. //初始化复杂缩放控件类
  231. panzoombar=new SuperMap.Control.PanZoomBar();
  232. // 是否固定缩放级别为[0,16]之间的整数,默认为false
  233. panzoombar.forceFixedZoomLevel=true;
  234. //是否显示滑动条,默认值为false
  235. panzoombar.showSlider=true;
  236. /*点击箭头移动地图时,所移动的距离占总距离(上下移动的总距离为高度,左右移动的总距离为宽度)
  237. 的百分比,默认为null。 例如:如果slideRatio 设为0.5, 则垂直上移地图半个地图高度.*/
  238. panzoombar.slideRatio=0.5;
  239. //设置缩放条滑块的高度,默认为11
  240. panzoombar.zoomStopHeight=5;
  241. //设置缩放条滑块的宽度,默认为13
  242. panzoombar.zoomStopWidth=9;
  243. //map.addControl(panzoombar);
  244. //map.addControl(panzoombar,new SuperMap.Pixel(bgrounddiv.width()-95,60));
  245. //map.addControl(new SuperMap.Control.LayerSwitcher());
  246. map.events.register("addlayer",null,function(e) {
  247. //alert(e.layer.CLASS_NAME);
  248. });
  249. map.events.on({"mousemove":gis.script.lonlat});
  250. map.events.on({"zoomend":gis.script.eventsZoomend});
  251. /*
  252. layer = new SuperMap.Layer.TiledDynamicRESTLayer("World", gis.script.url, null,{maxResolution:"auto"});
  253. //layer = new SuperMap.Layer.TiledDynamicRESTLayer("World", gis.script.url,{transparent: true}, {useCanvas: true, maxResolution: "auto"});
  254. layer.events.on({"layerInitialized": gis.script.addLayer});
  255. */
  256. /*
  257. if(gis.script.controlLayer){
  258. gis.script.initLayersInfo();
  259. }else{
  260. }
  261. */
  262. //1:1214391.3776 ,scales: [1/1214391.3776] ,scales:gis.script.scales
  263. layer = new SuperMap.Layer.TiledDynamicRESTLayer("sldtLayer", gis.script.url, null,{maxResolution:"auto",scales:gis.script.scales});
  264. //layer = new SuperMap.Layer.TiledDynamicRESTLayer("World", gis.script.url,{transparent: true}, {useCanvas: true, maxResolution: "auto"});
  265. layer.visibility=true;
  266. layer.events.on({"layerInitialized": gis.script.addmoreLayer});
  267. //gis.script.initOthenLayer();
  268. //gis.script.initVectorLayer();
  269. //gis.script.initMarkersLayer();
  270. }
  271. /**
  272. * 显示鼠标当前位置坐标信息
  273. */
  274. gis.script.lonlat =function(e) {
  275. var lonlat = map.getLonLatFromPixel(e.xy);
  276. str = "当前坐标: "+(lonlat.lon).toFixed(2)+" "+ (lonlat.lat).toFixed(2);
  277. document.getElementById("map_xy").innerHTML = str;
  278. }
  279. /*
  280. * 删除map上的弹出框
  281. */
  282. gis.script.removeAllPopup = function() {
  283. map.removeAllPopup();
  284. }
  285. /*
  286. * 地图比例改变时触发事件
  287. */
  288. gis.script.eventsZoomend = function(e) {
  289. /*
  290. if(markersLayer){
  291. if(e.object&&e.object.zoom==0){
  292. var l=map.getLayer(markersLayer.id);
  293. if(!l){
  294. map.addLayer(markersLayer);
  295. }
  296. }else{
  297. var l=map.getLayer(markersLayer.id);
  298. if(l){
  299. map.removeLayer(l);
  300. }
  301. }
  302. }
  303. */
  304. gis.script.removeAllPopup();
  305. /*
  306. for(var vv in gis.script.markersLayersInfo){
  307. var objinfo=gis.script.markersLayersInfo[vv];
  308. if(!gis.script.isBlank(objinfo.marktypename)&&
  309. gis.script.isNum(objinfo.showMinzoom)&&gis.script.isNum(objinfo.showMaxzoom)){
  310. if(e.object){
  311. //alert((!gis.script.isNum(objinfo.showMinzoom)||objinfo.showMinzoom<=e.object.zoom)&&(!gis.script.isNum(objinfo.showMaxzoom)||objinfo.showMaxzoom>=e.object.zoom));
  312. if((!gis.script.isNum(objinfo.showMinzoom)||objinfo.showMinzoom<=e.object.zoom)&&(!gis.script.isNum(objinfo.showMaxzoom)||objinfo.showMaxzoom>=e.object.zoom)){
  313. var l=gis.script.getmapinLayer(objinfo.marktypename);
  314. if(!l&&gis.script.markersLayers[objinfo.marktypename]){
  315. map.addLayer(gis.script.markersLayers[objinfo.marktypename]);
  316. }
  317. }else{
  318. var l=gis.script.getmapinLayer(objinfo.marktypename);
  319. if(l){
  320. map.removeLayer(l);
  321. }
  322. }
  323. }
  324. }
  325. }
  326. var boatvectorLayers=gis.script.addboatvectorLayer([]);
  327. gis.script.removeLayer([labelLayer,gqvectorLayer,jyrvectorLayer,mtvectorLayer,bwvectorLayer,boatLayer]);
  328. gis.script.removeLayer(boatvectorLayers);
  329. //gis.script.removeLayer(gis.script.addboatvectorLayer([]));
  330. if(labelLayer){
  331. if(e.object&&(e.object.zoom>5)){
  332. var l=map.getLayer(labelLayer.id);
  333. if(!l){
  334. map.addLayer(labelLayer);
  335. }
  336. }
  337. }
  338. if(gqvectorLayer){
  339. if(e.object&&(e.object.zoom>5&&e.object.zoom<7)){
  340. var l=map.getLayer(gqvectorLayer.id);
  341. if(!l){
  342. map.addLayer(gqvectorLayer);
  343. }
  344. }
  345. }
  346. //jyrvectorLayer
  347. if(jyrvectorLayer){
  348. if(e.object&&e.object.zoom>5){
  349. var l=map.getLayer(jyrvectorLayer.id);
  350. if(!l){
  351. map.addLayer(jyrvectorLayer);
  352. }
  353. }
  354. }
  355. if(mtvectorLayer){
  356. if(e.object&&e.object.zoom>8){
  357. var l=map.getLayer(mtvectorLayer.id);
  358. if(!l){
  359. map.addLayer(mtvectorLayer);
  360. }
  361. }
  362. }
  363. if(bwvectorLayer){
  364. if(e.object&&e.object.zoom>8){
  365. var l=map.getLayer(bwvectorLayer.id);
  366. if(!l){
  367. map.addLayer(bwvectorLayer);
  368. }
  369. }
  370. }
  371. if(boatvectorLayers.length>0){
  372. if(gis.script.markersLayers&&gis.script.pitchonMarkers&&gis.script.markersLayers[gis.script.pitchonMarkers]){
  373. gis.script.markersLayers[gis.script.pitchonMarkers].clearMarkers();
  374. }
  375. if(boatLayer){
  376. if(e.object&&e.object.zoom>8){
  377. var l=map.getLayer(boatLayer.id);
  378. if(!l){
  379. map.addLayer(boatLayer);
  380. }
  381. }
  382. }
  383. for(var ik=0;ik<boatvectorLayers.length;ik++){
  384. var blayer=boatvectorLayers[ik];
  385. if(blayer){
  386. if(e.object&&e.object.zoom>8){
  387. var l=map.getLayer(blayer.id);
  388. if(!l){
  389. map.addLayer(blayer);
  390. }
  391. }
  392. }
  393. }
  394. }
  395. */
  396. gis.script.switchtoLayer();
  397. }
  398. /*
  399. * 根据地图比例以及图层配置动态设置显示图层以及图层层次设置
  400. */
  401. gis.script.switchtoLayer = function(){
  402. //alert(gis.script.locationLayerRunRemoveAllFeatures);
  403. /*
  404. if(gis.script.locationLayerRunRemoveAllFeatures){
  405. locationLayer.removeAllFeatures();
  406. }
  407. gis.script.locationLayerRunRemoveAllFeatures=true;
  408. */
  409. //alert(gis.script.locationLayerRunRemoveAllFeatures);
  410. //locationLayer.removeAllFeatures();
  411. //gis.script.removeLayer([gis.script.markersLayers.markersgkLayer,gis.script.markersLayers.markersQskLayer]);
  412. //gis.script.removeLayer([gis.script.markersLayers.gzkMarkersLayer]);
  413. if(gis.script.markersLayers){
  414. for(var nl in gis.script.markersLayers){
  415. gis.script.removeLayer([gis.script.markersLayers[nl]]);
  416. }
  417. }
  418. /*
  419. if(gis.script.selectallLayers){
  420. for(var nl in gis.script.selectallLayers){
  421. gis.script.removeLayer([gis.script.selectallLayers[nl]]);
  422. }
  423. }
  424. */
  425. gis.script.removeLayer([labelLayer,jyrlabelLayer,gqvectorLayer,zyqvectorLayer,mdvectorLayer,jyrvectorLayer,mtvectorLayer,bwvectorLayer,boatLayer]);
  426. gis.script.removeLayer(gis.script.addboatvectorLayer([]));
  427. //map.addLayer(eval("("+"gis.script.markersLayers.markersgkLayer"+")"));
  428. if(gis.script.layersInitconfig&&gis.script.layersInitconfig.length){
  429. for(var i=0;i<gis.script.layersInitconfig.length;i++){
  430. var objinfo=gis.script.layersInitconfig[i];
  431. //alert(data.layerName);
  432. //map.addLayer(eval("("+data.layerName+")"));
  433. /*
  434. if(objinfo.layerName=="gis.script.boatonLayer.boatdanger1"){
  435. alert(objinfo.isshow&&objinfo.isshow==='true');
  436. }
  437. */
  438. if(objinfo.isshow&&objinfo.isshow==='true'){
  439. if((!gis.script.isNum(objinfo.showMinzoom)||objinfo.showMinzoom<=map.zoom)&&(!gis.script.isNum(objinfo.showMaxzoom)||objinfo.showMaxzoom>=map.zoom)){
  440. //alert(objinfo.layerName);
  441. if(eval("("+objinfo.layerName+")")){
  442. if(!gis.script.isBlank(objinfo.clear)){
  443. eval("("+objinfo.layerName+"."+objinfo.clear+"())")
  444. }
  445. map.addLayer(eval("("+objinfo.layerName+")"));
  446. }
  447. }
  448. }
  449. }
  450. }
  451. if(modifyvectorLayer){
  452. var mvLayer=map.getLayer(modifyvectorLayer.id);
  453. if(mvLayer){
  454. gis.script.removeLayer([modifyvectorLayer]);
  455. map.addLayer(modifyvectorLayer);
  456. }
  457. }
  458. }
  459. /*
  460. * 根据id获取markersLayer
  461. */
  462. gis.script.getmapinLayer = function(id) {
  463. if(gis.script.markersLayers[id]){
  464. var vid=gis.script.markersLayers[id].id
  465. return map.getLayer(vid);
  466. }
  467. return;
  468. }
  469. /*
  470. * 删除图层
  471. */
  472. gis.script.removeLayer = function(ar) {
  473. if(ar&&ar.length){
  474. for(var i=0;i<ar.length;i++){
  475. var templayer=ar[i];
  476. if(templayer){
  477. var l=map.getLayer(templayer.id);
  478. if(l){
  479. map.removeLayer(l);
  480. }
  481. }
  482. }
  483. }
  484. }
  485. /*
  486. * 加载矢量地图,以及添加layerInitialized监听事件,根据treeType切换树展示
  487. */
  488. gis.script.addmoreLayer = function() {
  489. layeryx = new SuperMap.Layer.TiledDynamicRESTLayer("yxdtLayer", gis.script.yxurl, null,{maxResolution:"auto",scales:gis.script.scales});
  490. layeryx.visibility=false;
  491. layeryx.events.on({"layerInitialized":function() {
  492. map.addLayers([layer,layeryx]);
  493. //出图,map.setCenter函数显示地图
  494. //var lonlat = layer.maxExtent.getCenterLonLat();
  495. lon =119.66;
  496. lat =32.57;
  497. //定位地图中心
  498. map.setCenter(new SuperMap.LonLat(lon, lat), 0);
  499. //map.setCenter(new SuperMap.LonLat(0, 0), 1);
  500. //map.zoomToScale(1.0/1020090.0,true);
  501. //gis.script.layerloadover=true;
  502. gis.script.initOthenLayer();
  503. gis.script.initModifyFeature();
  504. //gis.script.loadboatLayer(boatLayer,[{id:'1',lon:119.66,lat:32.57},{id:'2',lon:119.56,lat:32.47}]);
  505. /*
  506. if(gis.script.loadcbdataService&&!document.getElementById("treecbdtdiviframe")){
  507. gis.script.loadcbdataService(gis.script.phase.init);
  508. }
  509. */
  510. //alert(treeType);
  511. //gis.script.initlayersconfig();
  512. //gis.script.switchtoLayer();
  513. gis.edit.init();
  514. //根据treeType切换树展示
  515. gis.script.switchTree(treeType);
  516. //gis.script.openiframetree();
  517. }});
  518. }
  519. /*
  520. * 加载船舶动态的树页面
  521. */
  522. gis.script.openiframetree = function() {
  523. //treecbdtdiviframe
  524. if(document.getElementById("treecbdtdiviframe")){
  525. document.getElementById("treecbdtdiviframe").src=contextPath+"/zygl/treeiframe.html?model=cbdtTree";
  526. }
  527. if(document.getElementById("treeaqjgdiviframe")){
  528. //document.getElementById("treeaqjgdiviframe").src=contextPath+"/zygl/treeiframe.html?model=aqjgTree";
  529. }
  530. }
  531. /*
  532. * 地图按钮控制事件
  533. */
  534. gis.script.buttonclickFun = function(id) {
  535. var imgObj=$("#"+id).find("img");
  536. if(imgObj&&imgObj.length){
  537. $.each(imgObj, function(i,val){
  538. var tua=$(val);
  539. var attrSrc=tua.attr('src');
  540. if(attrSrc&&attrSrc.indexOf("_no.png")<0){
  541. tua.attr('src',attrSrc.replace(".png","_no.png"));
  542. }else{
  543. tua.attr('src',attrSrc.replace("_no.png",".png"));
  544. }
  545. });
  546. }
  547. if(id=='tckz'||id=='cbss'){
  548. var lobj=$("#"+id+"list");
  549. if(lobj.is(':hidden')){
  550. for(var ik=0;ik<annarray.length;ik++){
  551. $("#"+annarray[ik]+"list").hide("slow");
  552. }
  553. lobj.show("slow");
  554. }else{
  555. lobj.hide("slow");
  556. }
  557. }else if(id=='txbj'){//编辑
  558. if(modifyvectorLayer.features.length>0&&modifyFeature){
  559. if(gis.script.clickeditcommon({id:id,openid:'txsz'})){
  560. return;
  561. };
  562. if(locationLayer){
  563. // locationLayer.removeAllFeatures();
  564. }
  565. //进入编辑地物状态
  566. //gis.script.removeLayer([modifyvectorLayer]);
  567. modifyFeature.activate();
  568. // gis.script.toastmessage({text:'点击编辑区域后进入编辑状态。'});
  569. }else{
  570. gis.script.toastmessage({text:'请先选择可编辑区域。'});
  571. gis.script.buttonimgObjRestore(id);
  572. }
  573. }else if(id=='txsz'){//新增
  574. if(isLine == true && (modifyvectorLayer.features.length>0) ){
  575. gis.script.toastmessage({text:'不可以新增。'});
  576. }else if(modifyFeature){
  577. if(locationLayer){
  578. locationLayer.removeAllFeatures();
  579. }
  580. if(gis.script.clickeditcommon({id:id,openid:'txbj'})){
  581. return;
  582. };
  583. if(isLine){
  584. drawPolyline.activate();
  585. }else{
  586. drawPolygon.activate();
  587. }
  588. // gis.script.toastmessage({text:'可在地图上绘制地物。'});
  589. }
  590. }else if(id=='txsc'){//删除
  591. if(modifyvectorLayer.features.length>0){
  592. //不存在原有图形
  593. if(!isHaveGeo){
  594. gis.edit.delFeatureCompleted(null);
  595. }else if(nowModifyFeature&&modifyFeature){
  596. //gis.script.clearAllDeactivate(true);
  597. delFeature = nowModifyFeature ;
  598. gis.edit.delFeatureCompleted(delFeature);
  599. }
  600. }else{
  601. gis.script.toastmessage({text:'请先选择可删除区域。'});
  602. }
  603. }else if(id=='txpstg'){
  604. /*
  605. var objdata=JSON.stringify({syncsucceed:true,tableName:"GK_BASIC_JSJY_GK_GQ",zyid:"4"});
  606. gis.script.jsonAjax({url:contextPath+"/editgis/syncgisStatus.html",contentType:'application/json;charset=utf-8',async:true,data:objdata},
  607. function(data){
  608. });
  609. return;
  610. */
  611. //gis.edit.syncDataLayer();
  612. gis.edit.syncDataLayerMorefromid({gq:'4C7359F3F188412289C1B3590D64DA04,16CEF44E94FC4148BA7746B9953F4BC4,72D1DEFF430E4526AE51395F8F594991,99D1DEFF439E4526AE51399F8F594991'});
  613. //gis.edit.syncDataLayerMore({gq:[4,5,6,7,8],bw:[4,5,6,7,8]});
  614. /*
  615. gis.edit.syncDataLayerMore({gq:[4]});
  616. $("#"+id).unbind('click').click(function(){
  617. alert(gis.script.layerloadover);//判断页面是否加载完成
  618. alert(JSON.stringify(moreSyncResult));//判断图层是否同步完成
  619. });
  620. */
  621. }
  622. }
  623. gis.script.clickeditcommon = function(obj) {
  624. // $("#txsc").css("display","none");
  625. gis.script.buttonimgObjRestore(obj.openid);
  626. gis.script.removeAllPopup();
  627. //如果是编辑状态就终止编辑
  628. /*
  629. if(modifyvectorLayer){
  630. var mvLayer=map.getLayer(modifyvectorLayer.id);
  631. if(mvLayer){
  632. gis.script.clearAllDeactivate();
  633. gis.script.toastmessage({text:'退出地物编辑状态。'});
  634. return;
  635. }
  636. }
  637. */
  638. var imgObj=$("#"+obj.id).find("img");
  639. var isend=false;
  640. if(imgObj&&imgObj.length){
  641. $.each(imgObj, function(i,val){
  642. var tua=$(val);
  643. var attrSrc=tua.attr('src');
  644. if(attrSrc&&attrSrc.indexOf("_no.png")<0){
  645. gis.script.clearAllDeactivate(true);
  646. gis.script.toastmessage({text:'退出地物编辑状态。'});
  647. isend = true;
  648. }
  649. });
  650. }
  651. if(isend){
  652. $("#txsc").css("display","");
  653. return isend;
  654. }
  655. //
  656. //编辑地物前地图定位到地物中心
  657. try{
  658. if(nowModifyFeature.attributes&&nowModifyFeature.attributes.editinfoobj){
  659. //console.log("1.nowModifyFeature",nowModifyFeature.attributes.editinfoobj);
  660. var editinfoobj=nowModifyFeature.attributes.editinfoobj;
  661. map.setCenter(new SuperMap.LonLat(editinfoobj.lon,editinfoobj.lat));
  662. }
  663. }catch(e){
  664. }
  665. gis.script.clearAllDeactivate(true);
  666. map.addLayer(modifyvectorLayer);
  667. }
  668. gis.script.buttonimgObjRestore = function(id) {
  669. var imgObj=$("#"+id).find("img");
  670. if(imgObj&&imgObj.length){
  671. $.each(imgObj, function(i,val){
  672. var tua=$(val);
  673. var attrSrc=tua.attr('src');
  674. if(attrSrc&&attrSrc.indexOf("_no.png")>0){
  675. tua.attr('src',attrSrc.replace("_no.png",".png"));
  676. }
  677. });
  678. }
  679. }
  680. /*
  681. * 信息提示
  682. */
  683. gis.script.toastmessage = function(obj) {
  684. var newObject = jQuery.extend(true,{
  685. sticky : false,
  686. position : 'top-right',
  687. type : 'notice',//type:notice,type:success
  688. closeText: '',
  689. stayTime : 2000,
  690. position : 'top-center'},obj);
  691. $().toastmessage('showToast',newObject);
  692. //console.log("...",newObject);
  693. }
  694. /*
  695. *清除编辑的feature
  696. */
  697. gis.script.clearAllDeactivate = function(drawisdeactivate) {
  698. if(modifyFeature){
  699. if(modifyvectorLayer){
  700. gis.script.removeLayer([modifyvectorLayer]);
  701. }
  702. if(drawisdeactivate){
  703. drawPolygon.deactivate();
  704. }
  705. modifyFeature.deactivate();
  706. }
  707. }
  708. /*
  709. * 创建可编辑图层
  710. */
  711. gis.script.initModifyFeature = function() {
  712. if(layerUserControl&&typeof(layerUserControl)!='undefined'){
  713. if(typeof(layerUserControl.modifyFeature)!='undefined'){
  714. if(layerUserControl.modifyFeature==false){
  715. return;
  716. }
  717. }
  718. }
  719. //alert(layerUserControl.modifyFeature);
  720. modifyFeature = new SuperMap.Control.ModifyFeature(modifyvectorLayer);
  721. drawPolygon = new SuperMap.Control.DrawFeature(modifyvectorLayer, SuperMap.Handler.Polygon);
  722. drawPolyline = new SuperMap.Control.DrawFeature(modifyvectorLayer, SuperMap.Handler.Path);
  723. drawPolygon.events.on({"featureadded": function(drawGeometryArgs){
  724. gis.edit.addFeatureCompleted(drawGeometryArgs);
  725. }});
  726. drawPolyline.events.on({"featureadded": function(drawGeometryArgs){
  727. gis.edit.addFeatureLineCompleted(drawGeometryArgs);
  728. }});
  729. map.addControl(drawPolygon);
  730. map.addControl(drawPolyline);
  731. map.addControl(modifyFeature);
  732. }
  733. /*
  734. * 图层编辑完成后的触发函数
  735. */
  736. var editFlag = 0;
  737. var arrEditFeature=[];
  738. var editFeature;
  739. gis.script.editFeatureCompleted = function(event) {
  740. //alert($.confirm)
  741. $.confirm({
  742. title : '确认框',
  743. content : '确认保存编辑区域吗',
  744. confirm : function() {
  745. if(event){
  746. var feature = event.feature;
  747. editFlag = 1;
  748. // gis.script.editgisFeatureService(feature);
  749. if(!feature.geometry.xzId ){
  750. // arrEditFeature.push(feature);
  751. editFeature=feature;
  752. }else if(multiPolygonArrayAdd && multiPolygonArrayAdd.length>0){
  753. for(var i=0;i<multiPolygonArrayAdd.length;++i){
  754. if(feature.geometry.xzId == multiPolygonArrayAdd[i].xzId ){
  755. multiPolygonArrayAdd[i]=feature.geometry;
  756. return;
  757. }
  758. }
  759. }
  760. /*else if(arrAddFeature&&arrAddFeature.length>0){
  761. for(var i=0;i<arrAddFeature.length;++i){
  762. if(arrAddFeature[i].feature){
  763. if(feature.attributes.xzId == arrAddFeature[i].feature.attributes.xzId ){
  764. arrAddFeature[i]=feature;
  765. return;
  766. }
  767. }else if(!arrAddFeature[i].feature){
  768. if(feature.attributes.xzId == arrAddFeature[i].attributes.xzId ){
  769. arrAddFeature[i]=feature;
  770. return;
  771. }
  772. }
  773. }
  774. // arrEditFeature.push(feature);
  775. }*/
  776. // gis.edit.submitToService();
  777. }
  778. },
  779. cancel: function(){
  780. //console.log('the user clicked cancel');
  781. gis.script.buttonimgObjRestore('txbj');
  782. gis.script.clearAllDeactivate();
  783. }
  784. });
  785. //gis.script.buttonimgObjRestore('txbj');
  786. //gis.script.clearAllDeactivate();
  787. }
  788. /*
  789. * 编辑信息写入
  790. */
  791. gis.script.editgisFeatureService = function(feature,newfeature) {
  792. gis.edit.progressdiv('show');
  793. if(feature&&feature.attributes
  794. &&feature.attributes.gisEditLayerinfoKey
  795. &&gis.script.isNum(feature.attributes.featureidval)){
  796. if(dataServices){
  797. gis.script.consolelog('dataServices',dataServices);
  798. for(var n in dataServices){
  799. var data=gisConfigBean.dataconfig[n];
  800. if(data&&feature.attributes.gisEditLayerinfoKey==data.gisLayerinfoKey){
  801. data=jQuery.extend(true, {}, data);
  802. data.datasetNames=data.datasetNames.split(",");
  803. data.fields=data.fields.split(",");
  804. data.url=data.url||defdataUrl;
  805. //console.log("data",data);
  806. if(data.fields&&data.fields.length){
  807. var attributes = feature.attributes;
  808. var attrNames = data.fields;
  809. var attrValues = [];
  810. for(var i=0;i<attrNames.length;i++){
  811. //alert(attrNames[i]);
  812. attrValues.push(attributes[attrNames[i]]);
  813. }
  814. if(feature&&newfeature&&feature.geometry&&newfeature.components){
  815. //var collectionGeometry = new SuperMap.Geometry.Collection([feature.geometry,newfeature.geometry]);
  816. //var cfeature=feature.clone();
  817. var multiPolygonArray=[];
  818. if(feature.geometry.components&&feature.geometry.components.length){
  819. for(var i=0;i<feature.geometry.components.length;i++){
  820. multiPolygonArray.push(feature.geometry.components[i]);
  821. }
  822. }
  823. if(newfeature.components&&newfeature.components.length){
  824. for(var i=0;i<newfeature.components.length;i++){
  825. multiPolygonArray.push(newfeature.components[i]);
  826. }
  827. }
  828. //multiPolygonArray.push(newfeature.geometry);
  829. /*
  830. if(newfeature.geometry.components&&newfeature.geometry.components.length){
  831. for(var i=0;i<newfeature.geometry.components.length;i++){
  832. multiPolygonArray.push(newfeature.geometry.components[i]);
  833. }
  834. }
  835. */
  836. console.log("multiPolygonArray",multiPolygonArray);
  837. var multiPolygon = new SuperMap.Geometry.MultiPolygon(multiPolygonArray);
  838. console.log("multiPolygon",multiPolygon);
  839. //console.log("multiPolygon.constructor",multiPolygon.constructor);
  840. feature.geometry=multiPolygon;
  841. }
  842. var features = {
  843. fieldNames:attrNames,
  844. fieldValues:attrValues,
  845. geometry:feature.geometry
  846. };
  847. //console.log("features",features);
  848. //alert(features.geometry.id+"--"+feature.attributes.featureidval)
  849. features.geometry.id = feature.attributes.featureidval;
  850. var editFeatureParameter = new SuperMap.REST.EditFeaturesParameters({
  851. features: [features],
  852. editType: SuperMap.REST.EditType.UPDATE
  853. });
  854. if(data.url&&data.datasetNames&&data.datasetNames.length==1){
  855. var dnames=data.datasetNames[0].split(":");
  856. if(dnames&&dnames.length==2){
  857. //console.log("dnames",dnames);
  858. var url=data.url+"/datasources/"+dnames[0]+"/datasets/"+dnames[1];
  859. //alert("http://127.0.0.1:8090/iserver/services/data-ST/rest/data/datasources/gkzyYS/datasets/L_GQ_PY"+"\n"+url);
  860. var editFeatureService = new SuperMap.REST.EditFeaturesService(url, {
  861. eventListeners: {
  862. "processCompleted": function(editFeaturesEventArgs) {
  863. gis.script.updateFeaturesProcessCompleted(editFeaturesEventArgs,feature);
  864. },
  865. "processFailed":function(e) {
  866. gis.script.sqlProcessFailed(e);
  867. //gis.edit.syncgisStatus({editsucceed:false});
  868. }
  869. }
  870. });
  871. editFeatureService.processAsync(editFeatureParameter);
  872. }
  873. }
  874. }
  875. break;
  876. }
  877. }
  878. }
  879. }
  880. gis.script.buttonimgObjRestore('txbj');
  881. gis.script.clearAllDeactivate();
  882. }
  883. /*
  884. * 提示用户地物编辑是否保存成功,并且刷新图层
  885. */
  886. var gisSaveResult ;
  887. gis.script.updateFeaturesProcessCompleted = function(editFeaturesEventArgs,feature) {
  888. gis.edit.progressdiv('none');
  889. gis.script.buttonimgObjRestore('txbj');
  890. gis.script.buttonimgObjRestore('txsz');
  891. $("#txsc").css("display","");
  892. if(editFeaturesEventArgs&&editFeaturesEventArgs.result.resourceInfo.succeed) {
  893. //alert("更新地物成功");
  894. gis.script.toastmessage({text:'更新地物成功。',type:'success'});
  895. gisSaveResult = true;
  896. gis.script.updateFeaturesloadLayerdata(editFeaturesEventArgs,feature);
  897. }else{
  898. gisSaveResult = false;
  899. gis.script.toastmessage({text:'更新地物失败。',type:'warning'});
  900. }
  901. gis.edit.syncgisStatus({editsucceed:editFeaturesEventArgs.result.resourceInfo.succeed});
  902. }
  903. //var uflldMap={"GK_BASIC_JSJY_GK_GQ":gqvectorLayer,"GK_BASIC_JSJY_JYR":jyrvectorLayer,"GK_BASIC_JSJY_JYR_MT":mtvectorLayer,"GK_BASIC_JSJY_JYR_BW":bwvectorLayer,"GK_BASIC_JSJY_GK_ZYQ":zyqvectorLayer};
  904. gis.script.updateFeaturesloadLayerdata2 = function(editFeaturesEventArgs,feature) {
  905. if(feature&&feature.attributes
  906. &&feature.attributes.gisEditLayerinfoKey){
  907. //console.log("feature",feature);//uflldLayerMap
  908. if(uflldLayerMap&&uflldLayerMap[feature.attributes.gisEditLayerinfoKey]){
  909. var tlayer=uflldLayerMap[feature.attributes.gisEditLayerinfoKey];
  910. if(dataServices){
  911. for(var n in dataServices){
  912. var data=gisConfigBean.dataconfig[n];
  913. if(data&&feature.attributes.gisEditLayerinfoKey==data.gisLayerinfoKey){
  914. data=jQuery.extend(true, {}, data);
  915. if(data.gisLayerinfoAttrKey&&feature.attributes[data.gisLayerinfoAttrKey]){
  916. /*
  917. var param={};
  918. param[data.gisLayerinfoAttrKey]=feature.attributes[data.gisLayerinfoAttrKey];
  919. */
  920. var fba=tlayer.getFeaturesByAttribute(data.gisLayerinfoAttrKey,feature.attributes[data.gisLayerinfoAttrKey]);
  921. if(fba&&fba.length==1){
  922. if(locationLayer){
  923. locationLayer.removeAllFeatures();
  924. var cloneFeature=feature.clone();
  925. var fillColor="#a4a5a7";//"#ffff00"
  926. var fillOpacity=0.5;
  927. cloneFeature.style = {
  928. fill:true,
  929. stroke:true,
  930. strokeColor: "#ffff00",
  931. strokeWidth: 3,
  932. //pointerEvents: "visiblePainted",
  933. //fillColor: "#a4a5a7",
  934. strokeDashstyle:"solid",
  935. fillColor: fillColor,
  936. fillOpacity: fillOpacity
  937. };
  938. locationLayer.addFeatures(cloneFeature);
  939. }
  940. tlayer.removeFeatures(fba);
  941. if(data.Model&&data.Model[gis.script.modelid]){
  942. var model=data.Model[gis.script.modelid];
  943. data.datasetNames=data.datasetNames.split(",");
  944. data.fields=data.fields.split(",");
  945. data.cachedata=model.cachedata||data.cachedata;
  946. data.zoom=model.zoom||data.zoom;
  947. data.processCompleted=model.processCompleted;
  948. data.onSelectOpenPopkey=model.onSelectOpenPopkey;
  949. data.modelObj=model;
  950. data.url=data.url||defdataUrl;
  951. data.attributeFilter=data.gisLayerinfoAttrKey+"="+feature.attributes[data.gisLayerinfoAttrKey];
  952. //console.log("data",data);
  953. gis.script.loadLayerFeaturesBySqls(data);
  954. }
  955. }
  956. }
  957. break;
  958. }
  959. }
  960. }
  961. }
  962. }
  963. }
  964. gis.script.updateFeaturesloadLayerdata = function(editFeaturesEventArgs,feature) {
  965. gis.edit.init();
  966. }
  967. /*
  968. * 创建地图中的所有所需的图层
  969. */
  970. gis.script.initOthenLayer = function() {
  971. gkvectorLayer = new SuperMap.Layer.Vector("gkvectorLayer");
  972. gqvectorLayer = new SuperMap.Layer.Vector("gqvectorLayer");
  973. zyqvectorLayer = new SuperMap.Layer.Vector("zyqvectorLayer");
  974. mdvectorLayer = new SuperMap.Layer.Vector("mdvectorLayer");
  975. jyrvectorLayer = new SuperMap.Layer.Vector("jyrvectorLayer");
  976. locationLayer = new SuperMap.Layer.Vector("locationLayer");
  977. mtvectorLayer = new SuperMap.Layer.Vector("mtvectorLayer");
  978. bwvectorLayer = new SuperMap.Layer.Vector("bwvectorLayer");
  979. vectorLayer = new SuperMap.Layer.Vector("vector");
  980. boatLayer = new SuperMap.Layer.Vector("boatLayer");
  981. markersLayer = new SuperMap.Layer.Markers("Markers");
  982. //modifyvectorLayer = new SuperMap.Layer.Vector("modifyvectorLayer", {renderers: ["Canvas2"]});
  983. modifyvectorLayer = new SuperMap.Layer.Vector("modifyvectorLayer");
  984. modifyvectorLayer.events.on({"afterfeaturemodified": gis.script.editFeatureCompleted});
  985. uflldLayerMap={"GK_BASIC_JSJY_GK_GQ":gqvectorLayer,"GK_BASIC_JSJY_JYR":jyrvectorLayer,"GK_BASIC_JSJY_JYR_MT":mtvectorLayer,
  986. "GK_BASIC_JSJY_JYR_BW":bwvectorLayer,"GK_BASIC_JSJY_GK_ZYQ":zyqvectorLayer,"GK_BASIC_JSJY_GK_MD":mdvectorLayer};
  987. gis.script.markersLayers.markersgkLayer=new SuperMap.Layer.Markers("markersgkLayer");
  988. gis.script.markersLayers.gzkMarkersLayer=new SuperMap.Layer.Markers("gzkMarkersLayer");
  989. gis.script.markersLayers.markersQskLayer=new SuperMap.Layer.Markers("markersQskLayer");
  990. //gis.script.selectallLayers.bwSelectvectorLayer=new SuperMap.Layer.Vector("bwSelectvectorLayer");
  991. if(gis.script.initboatonLayer){
  992. gis.script.initboatonLayer();
  993. }
  994. boatLayer.styleMap = new SuperMap.StyleMap({
  995. "default":new SuperMap.Style({
  996. fillColor:"#000000",
  997. strokeColor:"#000000",
  998. fillOpacity: 0.6,
  999. graphicZIndex:1
  1000. })
  1001. });
  1002. gqvectorLayer.styleMap=new SuperMap.StyleMap({
  1003. "default":new SuperMap.Style({
  1004. fill:true,
  1005. fillColor:"#ffffff",
  1006. strokeColor:"#ff0000",
  1007. strokeDashstyle:"longdashdot",
  1008. fillOpacity: 0.1,
  1009. graphicZIndex:1
  1010. }),
  1011. "select":{
  1012. strokeColor: "#ffff00",
  1013. strokeWidth: 2,
  1014. strokeDashstyle:"solid",
  1015. fillColor: "#a4a5a7",
  1016. fillOpacity: 0.5,
  1017. graphicZIndex:2
  1018. }
  1019. });
  1020. zyqvectorLayer.styleMap=new SuperMap.StyleMap({
  1021. "default":new SuperMap.Style({
  1022. fill:true,
  1023. fillColor:"#ffffff",
  1024. strokeColor:"#ff0000",
  1025. strokeDashstyle:"longdashdot",
  1026. fillOpacity: 0.1,
  1027. graphicZIndex:1
  1028. }),
  1029. "select":{
  1030. strokeColor: "#ffff00",
  1031. strokeWidth: 2,
  1032. strokeDashstyle:"solid",
  1033. fillColor: "#a4a5a7",
  1034. fillOpacity: 0.5,
  1035. graphicZIndex:2
  1036. }
  1037. });
  1038. mdvectorLayer.styleMap=new SuperMap.StyleMap({
  1039. "default":new SuperMap.Style({
  1040. fill:true,
  1041. fillColor:"#ffffff",
  1042. strokeColor:"#ff0000",
  1043. strokeDashstyle:"longdashdot",
  1044. fillOpacity: 0.1,
  1045. graphicZIndex:1
  1046. }),
  1047. "select":{
  1048. strokeColor: "#ffff00",
  1049. strokeWidth: 2,
  1050. strokeDashstyle:"solid",
  1051. fillColor: "#a4a5a7",
  1052. fillOpacity: 0.5,
  1053. graphicZIndex:2
  1054. }
  1055. });
  1056. jyrvectorLayer.styleMap=new SuperMap.StyleMap({
  1057. "default":new SuperMap.Style({
  1058. fill:true,
  1059. fillColor:"#ffffff",
  1060. strokeColor:"#e36c09",
  1061. strokeDashstyle:"dash",
  1062. fillOpacity: 0.1,
  1063. graphicZIndex:1
  1064. }),
  1065. "select":{
  1066. strokeColor: "#ffff00",
  1067. strokeWidth: 2,
  1068. strokeDashstyle:"solid",
  1069. fillColor: "#a4a5a7",
  1070. fillOpacity: 0.5,
  1071. graphicZIndex:2
  1072. }
  1073. });
  1074. mtvectorLayer.styleMap=new SuperMap.StyleMap({
  1075. "default":new SuperMap.Style({
  1076. fill:true,
  1077. fillColor:"#e4deea",
  1078. strokeColor:"#a9a297",
  1079. strokeDashstyle:"solid",
  1080. strokeOpacity:0.8,
  1081. strokeWidth:1,
  1082. fillOpacity: 0.5,
  1083. graphicZIndex:1
  1084. }),
  1085. "select":{
  1086. strokeColor: "#ffff00",
  1087. strokeWidth: 2,
  1088. strokeDashstyle:"solid",
  1089. fillColor: "#a4a5a7",
  1090. fillOpacity: 0.5,
  1091. graphicZIndex:2
  1092. }
  1093. });
  1094. bwvectorLayer.styleMap=new SuperMap.StyleMap({
  1095. "default":new SuperMap.Style({
  1096. fill:true,
  1097. fillColor:"#77a4dc",
  1098. strokeColor:"#303030",
  1099. strokeDashstyle:"solid",
  1100. strokeOpacity:0.8,
  1101. strokeWidth:1,
  1102. fillOpacity: 0.1,
  1103. graphicZIndex:1
  1104. }),
  1105. "select":{
  1106. strokeColor: "#ffff00",
  1107. strokeWidth: 2,
  1108. strokeDashstyle:"solid",
  1109. //strokeOpacity:0.8,
  1110. fillColor: "#a4a5a7",
  1111. fillOpacity: 0.5,
  1112. graphicZIndex:2
  1113. }
  1114. });
  1115. modifyvectorLayer.styleMap=new SuperMap.StyleMap({
  1116. "default":new SuperMap.Style({
  1117. cursor: "inherit",
  1118. fillColor: "#ee9900",
  1119. fillOpacity: 0.4,
  1120. fontColor: "#000000",
  1121. hoverFillColor: "white",
  1122. hoverFillOpacity: 0.8,
  1123. hoverPointRadius: 1,
  1124. hoverPointUnit: "%",
  1125. hoverStrokeColor: "red",
  1126. hoverStrokeOpacity: 1,
  1127. hoverStrokeWidth: 0.2,
  1128. labelAlign: "cm",
  1129. labelOutlineColor: "white",
  1130. labelOutlineWidth: 3,
  1131. pointRadius: 6,
  1132. pointerEvents: "visiblePainted",
  1133. strokeColor: "#ee9900",
  1134. strokeDashstyle: "solid",
  1135. strokeLinecap: "round",
  1136. strokeOpacity: 1,
  1137. strokeWidth: 3
  1138. }),
  1139. "select":{
  1140. cursor: "pointer",
  1141. fillColor: "blue",
  1142. fillOpacity: 0.4,
  1143. fontColor: "#000000",
  1144. hoverFillColor: "white",
  1145. hoverFillOpacity: 0.8,
  1146. hoverPointRadius: 1,
  1147. hoverPointUnit: "%",
  1148. hoverStrokeColor: "red",
  1149. hoverStrokeOpacity: 1,
  1150. hoverStrokeWidth: 0.2,
  1151. labelAlign: "cm",
  1152. labelOutlineColor: "white",
  1153. labelOutlineWidth: 3,
  1154. pointRadius: 6,
  1155. pointerEvents: "visiblePainted",
  1156. strokeColor: "blue",
  1157. strokeDashstyle: "solid",
  1158. strokeLinecap: "round",
  1159. strokeOpacity: 1,
  1160. strokeWidth: 2
  1161. }
  1162. });
  1163. var strategy = new SuperMap.Strategy.GeoText();
  1164. strategy.style = {
  1165. //fontColor:"#FF7F00",
  1166. fontColor:"#000000",
  1167. fontWeight:"bolder",
  1168. fontSize:"14px",
  1169. fill: false,
  1170. fillColor: "#FFFFFF",
  1171. fillOpacity: 1,
  1172. stroke: false,
  1173. strokeColor:"#8B7B8B"
  1174. };
  1175. labelLayer = new SuperMap.Layer.Vector("Label",{strategies: [strategy]});
  1176. var jyrstrategy = new SuperMap.Strategy.GeoText();
  1177. jyrstrategy.style = {
  1178. //fontColor:"#FF7F00",
  1179. fontColor:"#000000",
  1180. fontWeight:"bolder",
  1181. fontSize:"14px",
  1182. fill: false,
  1183. fillColor: "#FFFFFF",
  1184. fillOpacity: 1,
  1185. stroke: false,
  1186. strokeColor:"#8B7B8B"
  1187. };
  1188. jyrlabelLayer = new SuperMap.Layer.Vector("jyrlabelLayer",{strategies: [jyrstrategy]});
  1189. //gis.script.layerSelectFeature([gkvectorLayer,gqvectorLayer,jyrvectorLayer,bwvectorLayer,vectorLayer]);
  1190. //gis.script.layerSelectFeature([gkvectorLayer,gqvectorLayer,jyrvectorLayer,vectorLayer,boatLayer]);
  1191. // gis.script.layerSelectFeature(gis.script.addboatvectorLayer([gkvectorLayer,gqvectorLayer,zyqvectorLayer,mdvectorLayer,jyrvectorLayer,mtvectorLayer,bwvectorLayer,vectorLayer]));
  1192. gis.script.loadLayerdata();
  1193. //map.addLayers([gkvectorLayer,gqvectorLayer,vectorLayer,markersLayer]);
  1194. map.addLayers([labelLayer,locationLayer,gkvectorLayer,vectorLayer,markersLayer]);
  1195. /*
  1196. var geoText = new SuperMap.Geometry.GeoText(119.66, 32.57,"中华人民共和国");
  1197. var geotextFeature = new SuperMap.Feature.Vector(geoText);
  1198. labelLayer.addFeatures([geotextFeature]);
  1199. */
  1200. gis.script.layerloadover=true;
  1201. }
  1202. gis.script.addboatvectorLayer = function(objs) {
  1203. if(gis.script.loadcbdataService&&gis.script.boatonLayer&&objs){
  1204. //console.log("CCC:",gis.script.boatonLayer);
  1205. for(var n in gis.script.boatonLayer){
  1206. objs.push(gis.script.boatonLayer[n]);
  1207. }
  1208. //console.log("CCC:",objs);
  1209. }
  1210. return objs
  1211. }
  1212. gis.script.initMarkersLayer = function() {
  1213. markersLayer = new SuperMap.Layer.Markers("Markers");
  1214. layer.events.on({"layerInitialized":function() {
  1215. map.addLayer(markersLayer);
  1216. if(gis.script.loadMarkersLayerdata){
  1217. gis.script.loadMarkersLayerdata();
  1218. }
  1219. }});
  1220. }
  1221. gis.script.initVectorLayer = function() {
  1222. vectorLayer = new SuperMap.Layer.Vector("vector");
  1223. layer.events.on({"layerInitialized": function() {
  1224. map.addLayer(vectorLayer);
  1225. gis.script.selectFeature();
  1226. }
  1227. });
  1228. }
  1229. gis.script.addLayer = function() {
  1230. map.addLayer(layer);
  1231. //出图,map.setCenter函数显示地图
  1232. var lonlat = layer.maxExtent.getCenterLonLat();
  1233. lon = lonlat.lon;
  1234. lat = lonlat.lat;
  1235. map.setCenter(new SuperMap.LonLat(lon, lat), 0);
  1236. //map.setCenter(new SuperMap.LonLat(0, 0), 1);
  1237. //map.zoomToScale(1.0/1020090.0,true);
  1238. gis.script.layerloadover=true;
  1239. }
  1240. /*
  1241. * 给Feature添加点击事件,Feature包括港区、经营人、码头、泊位、船舶
  1242. */
  1243. gis.script.layerSelectFeature = function(vlist){
  1244. if(vlist&&vlist.length){
  1245. var selectFeature= new SuperMap.Control.SelectFeature(vlist, {
  1246. //是否重复触发地物选择事件,只在单选非toggle模式下有效。默认为false,表示处于 选中状态的地物不在触发选择事件。
  1247. //repeat:true,
  1248. hover:true,
  1249. callbacks:{
  1250. click: function(feature){
  1251. //for(var cf in currentFeature){alert(cf);}
  1252. //alert(event.clientX+"--"+event.clientY);
  1253. //var lonlat=map.getLonLatFromPixel(new SuperMap.Pixel(event.clientX,event.clientY));
  1254. //alert(lonlat.lon.toFixed(5));
  1255. var eve=window.event;
  1256. gis.script.featurecallbacksclick(feature,eve);
  1257. if(feature){
  1258. var fillColor="#a4a5a7";//"#ffff00"
  1259. var fillOpacity=0.5;
  1260. var cloneFeature=feature.clone();
  1261. cloneFeature.style = {
  1262. fill:true,
  1263. stroke:true,
  1264. strokeColor: "#ffff00",
  1265. strokeWidth: 3,
  1266. //pointerEvents: "visiblePainted",
  1267. //fillColor: "#a4a5a7",
  1268. strokeDashstyle:"solid",
  1269. fillColor: fillColor,
  1270. fillOpacity: fillOpacity
  1271. };
  1272. locationLayer.addFeatures(cloneFeature);
  1273. nowModifyFeature=feature.clone();
  1274. /*
  1275. var mapCenter=map.getCenter();
  1276. if(mapCenter){
  1277. nowModifyFeature.attributes.editinfoobj={lon:mapCenter.lon,lat:mapCenter.lat,zoom:map.zoom};
  1278. //console.log("1.getCenter",map.getCenter());
  1279. console.log("1.nowModifyFeature.attributes.editinfoobj",nowModifyFeature.attributes.editinfoobj);
  1280. }
  1281. */
  1282. var centerLonLat = feature.geometry.getBounds().getCenterLonLat();
  1283. if(centerLonLat){
  1284. nowModifyFeature.attributes.editinfoobj={lon:centerLonLat.lon,lat:centerLonLat.lat,zoom:map.zoom};
  1285. //console.log("2.nowModifyFeature.attributes.editinfoobj",nowModifyFeature.attributes.editinfoobj);
  1286. }
  1287. modifyvectorLayer.removeAllFeatures();
  1288. modifyvectorLayer.addFeatures(nowModifyFeature);
  1289. }
  1290. }
  1291. },
  1292. onSelect: gis.script.onFeatureSelected,
  1293. onUnselect:gis.script.onUnFeatureSelected,
  1294. });
  1295. map.addControl(selectFeature);
  1296. selectFeature.activate();
  1297. }
  1298. }
  1299. /**
  1300. * 选中时设置删除按钮可用
  1301. */
  1302. gis.script.onFeatureSelected = function(selectFeature){
  1303. // alert("xz");
  1304. // document.getElementById("txsc").disabled=false;
  1305. }
  1306. /**
  1307. * 不选中时设置删除按钮不可用
  1308. */
  1309. gis.script.onUnFeatureSelected = function(selectFeature){
  1310. //alert("qxxz");
  1311. // document.getElementById("txsc").disabled=true;
  1312. }
  1313. gis.script.featurecallbacksclick = function(feature,e){
  1314. //alert(feature.attributes.onSelectOpenPopkey);
  1315. if(locationLayer){
  1316. locationLayer.removeAllFeatures();
  1317. }
  1318. var chicken=$('#chicken');
  1319. chicken.remove();
  1320. if(feature.attributes&&feature.attributes.onSelectOpenPopkey&&gis.script[feature.attributes.onSelectOpenPopkey]){
  1321. //alert(feature.attributes.onSelectOpenPopkey);
  1322. gis.script[feature.attributes.onSelectOpenPopkey](feature,e);
  1323. }
  1324. /*
  1325. if(gis.script.gisidTo&&feature.attributes&&feature.attributes.gisidToKey){
  1326. var sinfo=gis.script.gisidTo[feature.attributes.gisidToKey];
  1327. var tempSize={width:320,height:155};
  1328. if(sinfo&&sinfo.ID){
  1329. //alert(sinfo.ID);
  1330. gis.script.jsonAjax({url:contextPath+"/zygl/queryGK.html",async:true,data:{id:sinfo.ID}},
  1331. function(data){
  1332. //alert(JSON.stringify(data));
  1333. if(data&&data.message){
  1334. //alert(data.message);
  1335. //alert(gis.script.popSize[feature.attributes.gisLayerinfoKey]);
  1336. var popup = gis.anchored.popupHtml(feature.geometry.getBounds().getCenterLonLat(),gis.script.popSize[feature.attributes.gisLayerinfoKey]||tempSize,data.message);
  1337. gis.anchored.addPopup(map,popup);
  1338. }
  1339. });
  1340. }else{
  1341. var popup = gis.anchored.popupHtml(feature.geometry.getBounds().getCenterLonLat(),tempSize,
  1342. gis.anchored.tohtml(gis.anchored.nvlinfo({poptitle:"&nbsp;",portName:feature.attributes.NAME||feature.attributes.name||""})));
  1343. gis.anchored.addPopup(map,popup);
  1344. }
  1345. }
  1346. */
  1347. }
  1348. gis.script.selectFeature = function(){
  1349. /*
  1350. var callbacks={
  1351. click: function(currentFeature){
  1352. //for(var cf in currentFeature){alert(cf);}
  1353. alert(cf.data);
  1354. }
  1355. };
  1356. var selectFeature = new SuperMap.Control.SelectFeature(vectorLayer,
  1357. {
  1358. callbacks: callbacks
  1359. });
  1360. */
  1361. var selectFeature= new SuperMap.Control.SelectFeature(vectorLayer, {
  1362. //是否重复触发地物选择事件,只在单选非toggle模式下有效。默认为false,表示处于 选中状态的地物不在触发选择事件。
  1363. repeat:true,
  1364. onSelect: function(feature) {
  1365. /*
  1366. selecedtBus = feature;
  1367. popup = new SuperMap.Popup("chicken",
  1368. selecedtBus.geometry.getBounds().getCenterLonLat(),
  1369. new SuperMap.Size(300,42),
  1370. "", null, true);
  1371. selecedtBus.popup = popup;
  1372. map.addPopup(popup);
  1373. */
  1374. //console.log('feature:',feature);
  1375. //alert(feature.id);
  1376. var popup = gis.anchored.popup(feature.geometry.getBounds().getCenterLonLat(),{});
  1377. gis.anchored.addPopup(map,popup);
  1378. }
  1379. }
  1380. );
  1381. map.addControl(selectFeature);
  1382. selectFeature.activate();
  1383. /*
  1384. var selectFeature= new SuperMap.Control.SelectFeature(vectorLayer, {
  1385. onSelect: function(feature) {
  1386. selecedtBus = feature;
  1387. popup = new SuperMap.Popup("chicken",
  1388. selecedtBus.geometry.getBounds().getCenterLonLat(),
  1389. new SuperMap.Size(300,42),
  1390. "dddddddddddd", null, true);
  1391. selecedtBus.popup = popup;
  1392. map.addPopup(popup);
  1393. //var popup = gis.anchored.popup(feature.geometry.getBounds().getCenterLonLat(),{});
  1394. //gis.anchored.addPopup(map,popup);
  1395. },
  1396. //onUnselect: function() {alert(2)}
  1397. }
  1398. );
  1399. map.addControl(selectFeature);
  1400. selectFeature.activate();
  1401. */
  1402. }
  1403. /*
  1404. * 给Marker添加点击事件,Marker包括港口
  1405. */
  1406. gis.script.addMarker = function(obj){
  1407. var size;
  1408. var offset;
  1409. var mattr=gis.script.markerAttr[obj.type];
  1410. if(!mattr){
  1411. size= new SuperMap.Size(obj.w,obj.h);
  1412. offset=new SuperMap.Pixel(-(size.w/2), -(size.h/2));
  1413. gis.script.markerAttr[obj.type]={};
  1414. gis.script.markerAttr[obj.type].size=size;
  1415. gis.script.markerAttr[obj.type].offset=offset;
  1416. }else{
  1417. size=gis.script.markerAttr[obj.type].size;
  1418. offset=gis.script.markerAttr[obj.type].offset
  1419. }
  1420. if(size&&offset){
  1421. //alert(size);
  1422. var icon = new SuperMap.Icon(obj.src, size, offset);
  1423. var marker = new SuperMap.Marker(new SuperMap.LonLat(obj.lon,obj.lat),icon);
  1424. //添加覆盖物到标记图层
  1425. //markersLayer.addMarker(marker);
  1426. gis.script.addMarkerLayer(obj,marker);
  1427. //eval("(showMarkerInfo())")
  1428. if(!gis.script.isBlank(obj.functionName)){
  1429. marker.events.on({"click":function(e) {
  1430. //alert(e);alert(event);
  1431. //alert(this);alert(event);
  1432. var eve=window.event||e;
  1433. obj.events=this;
  1434. //gis.script[obj.functionName](obj.feature,event);
  1435. gis.script[obj.functionName](obj.feature,eve);
  1436. }});
  1437. }
  1438. }
  1439. }
  1440. gis.script.addMarkerLayer = function(obj,marker){
  1441. if(!gis.script.isBlank(obj.marktypename)){
  1442. //alert(obj.marktypename);
  1443. //gis.script.markersLayers
  1444. /*
  1445. if(!gis.script.markersLayers[obj.marktypename]){
  1446. gis.script.markersLayers[obj.marktypename] = new SuperMap.Layer.Markers(obj.marktypename);
  1447. if(obj.defshow&&obj.defshow=="true"){
  1448. map.addLayer(gis.script.markersLayers[obj.marktypename]);
  1449. }
  1450. gis.script.markersLayersInfo[obj.marktypename]=obj;
  1451. }
  1452. */
  1453. //alert(gis.script.markersLayers[obj.marktypename]);
  1454. //alert(obj.marktypename);
  1455. //console.log('obj.marktypename:',obj.marktypename);
  1456. gis.script.markersLayers[obj.marktypename].addMarker(marker);
  1457. }
  1458. }
  1459. gis.script.showMarkerInfo = function(obj){
  1460. //alert(JSON.stringify(obj));
  1461. //var popup = gis.anchored.popup(obj.events.getLonLat(),{});
  1462. var popup = gis.anchored.popupHtml(obj.events.getLonLat(),{width:320,height:155},
  1463. gis.anchored.tohtml(gis.anchored.portinfo({portName:obj.name,portNumber:2,anchorageNumber:2,chanceNumber:16})));
  1464. gis.anchored.addPopup(map,popup);
  1465. }
  1466. gis.script.getLayersInfo = function(){
  1467. var getLayersInfoService = new SuperMap.REST.GetLayersInfoService(gis.script.url);
  1468. getLayersInfoService.events.on({ "processCompleted": gis.script.processCompletedlayers});
  1469. getLayersInfoService.processAsync();
  1470. }
  1471. gis.script.processCompletedlayers = function(e){
  1472. //gis.script.consolelog('e:',e);
  1473. if(e&&e.result&&e.result.subLayers){
  1474. var layers=e.result.subLayers.layers;
  1475. for (var j = 0; j <layers.length; j++) {
  1476. gis.script.subLayers.push(layers[j])
  1477. //alert(layers[j]);
  1478. //alert("<input type='checkbox' checked="+layers[j].visible+"/><span>"+layers[j].name+"</span>");
  1479. $("<input type='checkbox' class='checkboxSel' value='"+layers[j].name+"' "+(layers[j].visible?"checked=true":"")+"/><span>"+layers[j].name+"</span>").addClass("popupSpan").appendTo($("#layers"));
  1480. //break;
  1481. }
  1482. }
  1483. //alert("-->"+$("#layers .checkboxSel").length)
  1484. var cb=$("#layers .checkboxSel");
  1485. cb.click(function () {
  1486. alert(layer.params.layersID)
  1487. var str=new Array();
  1488. str.push("[");
  1489. $.each(cb, function(i, item){
  1490. if(eval(item.checked) == true){
  1491. str.push(args);
  1492. }
  1493. });
  1494. str.push(",]");
  1495. alert(str.length+"-->"+str.join("").replace(",]","]"));
  1496. //layer.redraw();
  1497. });
  1498. //样式为BootStrap框架设置
  1499. /*
  1500. cb.hover(function () {
  1501. $(this).addClass("label-success");
  1502. }, function () {
  1503. $(this).removeClass("label-success");
  1504. });
  1505. */
  1506. gis.script.createTempLayer();
  1507. }
  1508. gis.script.createTempLayer = function(){
  1509. var cb=$("#layers .checkboxSel");
  1510. var layerStatusParameters = new SuperMap.REST.SetLayerStatusParameters();
  1511. layerStatusParameters = (function(parameters) {
  1512. //alert(parameters);
  1513. $.each(cb, function(i, item){
  1514. var layerStatus = new SuperMap.REST.LayerStatus();
  1515. layerStatus.layerName = item.value;
  1516. layerStatus.isVisible = eval(item.checked);
  1517. //alert(layerStatus.layerName+"--"+layerStatus.isVisible)
  1518. parameters.layerStatusList.push(layerStatus);
  1519. });
  1520. //设置资源在服务端保存的时间,单位为分钟,默认为10
  1521. parameters.holdTime = 30;
  1522. return parameters;
  1523. })(layerStatusParameters);
  1524. var setLayerStatusService = new SuperMap.REST.SetLayerStatusService(gis.script.url);
  1525. setLayerStatusService.events.on({ "processCompleted": function(createTempLayerEventArgs){
  1526. tempLayerID = createTempLayerEventArgs.result.newResourceID;
  1527. //创建 TiledDynamicRESTLayer
  1528. //layer = new SuperMap.Layer.TiledDynamicRESTLayer("World", gis.script.url, {transparent: true, cacheEnabled: false, redirect: true, layersID: tempLayerID}, {maxResolution: "auto", bufferImgCount: 0});
  1529. //layer.bufferImgCount = 0;
  1530. //layer.events.on({"layerInitialized": gis.script.addLayer});
  1531. layer = new SuperMap.Layer.TiledDynamicRESTLayer("World", gis.script.url, {transparent: true, cacheEnabled: false, redirect: true, layersID: tempLayerID},{maxResolution:"auto", bufferImgCount: 0});
  1532. layer.bufferImgCount = 0;
  1533. layer.events.on({"layerInitialized": gis.script.addLayer});
  1534. }});
  1535. setLayerStatusService.processAsync(layerStatusParameters);
  1536. }
  1537. gis.script.initLayersInfo = function() {
  1538. gis.script.getLayersInfo();
  1539. }
  1540. gis.script.setMapCenter = function(info){
  1541. //alert(info.zoomSize);
  1542. if(info&&typeof(info.lon)!="undefined"&&typeof(info.lat)!="undefined"){
  1543. map.setCenter(new SuperMap.LonLat(info.lon, info.lat),info.zoomSize);
  1544. issetCenter=true;
  1545. }
  1546. }
  1547. gis.script.setMaplocationLayer = function(feature,o){
  1548. locationLayer.removeAllFeatures();
  1549. if(feature){
  1550. locationLayer.addFeatures(feature);
  1551. try{
  1552. if(o.labelfield&&feature.attributes[o.labelfield]){
  1553. labelLayer.removeAllFeatures();
  1554. var geoText = new SuperMap.Geometry.GeoText(centerLonLat.lon, centerLonLat.lat,feature.attributes[o.labelfield]);
  1555. var geotextFeature = new SuperMap.Feature.Vector(geoText);
  1556. labelLayer.addFeatures([geotextFeature]);
  1557. }
  1558. }catch(e){
  1559. }
  1560. }
  1561. }
  1562. var switchto=false;
  1563. gis.script.testSwitchto = function(){
  1564. var uri;
  1565. if(switchto){
  1566. uri="/znjg/zygl/treeiframe.html?model=gis&treeType=ty"
  1567. }else{
  1568. uri="/znjg/zygl/treeiframe.html?model=gis&treeType=cbdt"
  1569. }
  1570. //alert(gis.script.queryString(uri,"treeType"));
  1571. var o={menuurl:uri}
  1572. gis.script.switchto(o);
  1573. switchto=!switchto;
  1574. }
  1575. /*
  1576. * 切换专辑图
  1577. */
  1578. gis.script.switchto = function(o){
  1579. if(o&&o.menuurl){
  1580. if(!gis.script.layerloadover){
  1581. window.location.href=o.menuurl;
  1582. return;
  1583. }
  1584. var ttype=gis.script.queryString(o.menuurl,"treeType");
  1585. gis.script.switchTree(ttype);
  1586. }
  1587. //alert($(".treedivClass").length);
  1588. }
  1589. gis.script.switchTree = function(ttype){
  1590. treeType=ttype;
  1591. if(treeType){
  1592. //alert(treeType);
  1593. $.each($(".treedivClass"), function(i,val){
  1594. var ua=$(val);
  1595. ua.css("display","none");
  1596. });
  1597. $("#tree"+treeType+"div").css("display","");
  1598. }
  1599. gis.script.initlayersconfig();
  1600. //gis.script.settrendsLayer("gkMarkLayer","false");
  1601. //gis.script.settrendsLayer("gqvectorLayer","false");
  1602. //gis.script.settrendsLayer("boatonLayers",'true');
  1603. gis.script.switchtoLayer();
  1604. gis.script.switchtckzTree();
  1605. gis.script.switchcbsslist(ttype);
  1606. }
  1607. gis.script.switchcbsslist = function(ttype){
  1608. if(ttype=='cbdt'){
  1609. $("#cbss").css("display","");
  1610. }else{
  1611. $("#cbss").css("display","none");
  1612. $("#cbsslist").css("display","none");
  1613. }
  1614. //$("#txbj").css("display","");
  1615. if(layerUserControl&&typeof(layerUserControl)!='undefined'){
  1616. if(typeof(layerUserControl.modifyFeature)!='undefined'){
  1617. if(layerUserControl.modifyFeature==true){
  1618. $("#txbj").css("display","");
  1619. $("#txsz").css("display","");
  1620. $("#txsc").css("display","");
  1621. //$("#txpstg").css("display","");
  1622. }
  1623. }
  1624. }
  1625. var kk=0;
  1626. for(var ii=0;ii<annarray.length;ii++){
  1627. var annobj=$("#"+annarray[ii]);
  1628. if(annobj&&annobj.length){
  1629. //annobj.css("top",bgrounddiv.offset().top+10);
  1630. //annobj.css("right",32+52*(ii+1));
  1631. //alert(annobj.css('display'));
  1632. if(annobj.css('display')&&annobj.css('display')!='none'){
  1633. annobj.css("right",32+72*(kk+1));
  1634. kk=kk+1;
  1635. }
  1636. }
  1637. }
  1638. }
  1639. gis.script.switchtckzTree = function(){
  1640. var iframepage=document.getElementById("treetckzdiviframe");
  1641. if(iframepage){
  1642. if(!gis.script.tckztreeloadover){
  1643. iframepage.src=contextPath+"/editgis/gisiframe.html?model=tckzTree";
  1644. }else{
  1645. if(iframepage.contentWindow){
  1646. iframepage.contentWindow.gis.tree.inittreeCheck("tree");
  1647. }
  1648. }
  1649. }
  1650. }
  1651. /*
  1652. * 获取参数
  1653. */
  1654. gis.script.queryString = function (uri,val){
  1655. //var uri = window.location.search;
  1656. var re = new RegExp("" +val+ "=([^\&\?]*)", "ig");
  1657. return ((uri.match(re))?(uri.match(re)[0].substr(val.length+1)):null);
  1658. }
  1659. $(document).ready(function() {
  1660. if(document.getElementById("treetydiviframe")){
  1661. //${contextPath}/zygl/gisiframe.html?model=commonTree
  1662. document.getElementById("treetydiviframe").src=contextPath+"/zygl/treeiframe.html?model=commonTree";
  1663. }
  1664. gis.script.init();
  1665. });