var layer,layeryx,locationLayer,gkvectorLayer,gqvectorLayer,zyqvectorLayer,markersLayer,jyrvectorLayer,boatLayer,modifyvectorLayer; var mdvectorLayer,axvectorLayer; var modifyFeature,nowModifyFeature; var uflldLayerMap; //是否已经有图形 var isHaveGeo = false; var gis = gis || {}; gis.script = function() { }; //gis.script.url="http://localhost:8090/iserver/services/map-world/rest/maps/World"; gis.script.phase={init:"init",refresh:"refresh",cbrefresh:"cbrefresh"}; gis.script.layerloadover=false; gis.script.controlLayer=false; gis.script.subLayers = new Array(); //gis.script.iserverUrl=iserverUrl||"http://"+serverName+":8090/iserver/services"; //gis.script.url=gis.script.iserverUrl+"/map-gk/rest/maps/gist"; //gis.script.yxurl=gis.script.iserverUrl+"/map-gk/rest/maps/gist"; gis.script.url=gisConfigBean.config.sldt.url; gis.script.yxurl=gisConfigBean.config.yxdt.url; gis.script.markerAttr={}; gis.script.yxslqh=false; gis.script.markersLayers={}; gis.script.markersLayersInfo={}; gis.script.selectallLayers={}; gis.script.tckztreeloadover=false; gis.script.layersInitconfig=[]; gis.script.layersInitconfigObject={}; /* * 读取配置信息,动态加载图层 */ gis.script.initlayersconfig = function() { //{"gkvectorLayer":{"id":"gkvectorLayer","Model":{"ty":{"id":"ty","isshow":"true"},"cbdt":{"id":"cbdt","isshow":"false"}},"label":"港口图层"}} gis.script.layersInitconfig=[]; gis.script.layersInitconfigObject={}; if(gis.script.isBlank(treeType)){ treeType="ty"; } if(layerConfig){ for(var n in layerConfig){ var data=layerConfig[n]; if(data&&data.Model&&data.Model[treeType]){ var modeldata=jQuery.extend(true, {}, data.Model[treeType]); modeldata.layerName=n; gis.script.layersInitconfig.push(modeldata); gis.script.setlayersInitconfigObject(data.name||data.id,modeldata); } } } //根据orderby排序,以便按层次加载图层 gis.script.layersInitconfig.sort(function(a,b){ if(gis.script.isNum(a.orderby)&&gis.script.isNum(b.orderby)){ //console.log("CCC1:",parseFloat(a.orderby)); return parseFloat(a.orderby)>"+val.id); }); */ /* var footer=parent.window.document.getElementById("footer"); if(footer){ //alert($(parent.window.document.getElementById("footer")).height()); bgrounddiv.css("height",bgrounddiv.height()-$(footer).height()); } */ //map = new SuperMap.Map("bgrounddiv");//,{allOverlays: true} map = new SuperMap.Map("bgrounddiv",{allOverlays: true,controls: [ new SuperMap.Control.Navigation({ dragPanOptions: { enableKinetic: true } })] }); //scales:[1 / 147914677, 1 / 73957338, 1 / 36978669, 1 / 18489334, 1 / 9244667, 1 / 4622333, 1 / 2311166, 1 / 1000000] //map.addControl(new SuperMap.Control.ScaleLine()); //map.addControl(new SuperMap.Control.ScaleLine(),new SuperMap.Pixel(bgrounddiv.width()-120,bgrounddiv.height()-60)); //初始化复杂缩放控件类 panzoombar=new SuperMap.Control.PanZoomBar(); // 是否固定缩放级别为[0,16]之间的整数,默认为false panzoombar.forceFixedZoomLevel=true; //是否显示滑动条,默认值为false panzoombar.showSlider=true; /*点击箭头移动地图时,所移动的距离占总距离(上下移动的总距离为高度,左右移动的总距离为宽度) 的百分比,默认为null。 例如:如果slideRatio 设为0.5, 则垂直上移地图半个地图高度.*/ panzoombar.slideRatio=0.5; //设置缩放条滑块的高度,默认为11 panzoombar.zoomStopHeight=5; //设置缩放条滑块的宽度,默认为13 panzoombar.zoomStopWidth=9; //map.addControl(panzoombar); //map.addControl(panzoombar,new SuperMap.Pixel(bgrounddiv.width()-95,60)); //map.addControl(new SuperMap.Control.LayerSwitcher()); map.events.register("addlayer",null,function(e) { //alert(e.layer.CLASS_NAME); }); map.events.on({"mousemove":gis.script.lonlat}); map.events.on({"zoomend":gis.script.eventsZoomend}); /* layer = new SuperMap.Layer.TiledDynamicRESTLayer("World", gis.script.url, null,{maxResolution:"auto"}); //layer = new SuperMap.Layer.TiledDynamicRESTLayer("World", gis.script.url,{transparent: true}, {useCanvas: true, maxResolution: "auto"}); layer.events.on({"layerInitialized": gis.script.addLayer}); */ /* if(gis.script.controlLayer){ gis.script.initLayersInfo(); }else{ } */ //1:1214391.3776 ,scales: [1/1214391.3776] ,scales:gis.script.scales layer = new SuperMap.Layer.TiledDynamicRESTLayer("sldtLayer", gis.script.url, null,{maxResolution:"auto",scales:gis.script.scales}); //layer = new SuperMap.Layer.TiledDynamicRESTLayer("World", gis.script.url,{transparent: true}, {useCanvas: true, maxResolution: "auto"}); layer.visibility=true; layer.events.on({"layerInitialized": gis.script.addmoreLayer}); //gis.script.initOthenLayer(); //gis.script.initVectorLayer(); //gis.script.initMarkersLayer(); } /** * 显示鼠标当前位置坐标信息 */ gis.script.lonlat =function(e) { var lonlat = map.getLonLatFromPixel(e.xy); str = "当前坐标: "+(lonlat.lon).toFixed(2)+" "+ (lonlat.lat).toFixed(2); document.getElementById("map_xy").innerHTML = str; } /* * 删除map上的弹出框 */ gis.script.removeAllPopup = function() { map.removeAllPopup(); } /* * 地图比例改变时触发事件 */ gis.script.eventsZoomend = function(e) { /* if(markersLayer){ if(e.object&&e.object.zoom==0){ var l=map.getLayer(markersLayer.id); if(!l){ map.addLayer(markersLayer); } }else{ var l=map.getLayer(markersLayer.id); if(l){ map.removeLayer(l); } } } */ gis.script.removeAllPopup(); /* for(var vv in gis.script.markersLayersInfo){ var objinfo=gis.script.markersLayersInfo[vv]; if(!gis.script.isBlank(objinfo.marktypename)&& gis.script.isNum(objinfo.showMinzoom)&&gis.script.isNum(objinfo.showMaxzoom)){ if(e.object){ //alert((!gis.script.isNum(objinfo.showMinzoom)||objinfo.showMinzoom<=e.object.zoom)&&(!gis.script.isNum(objinfo.showMaxzoom)||objinfo.showMaxzoom>=e.object.zoom)); if((!gis.script.isNum(objinfo.showMinzoom)||objinfo.showMinzoom<=e.object.zoom)&&(!gis.script.isNum(objinfo.showMaxzoom)||objinfo.showMaxzoom>=e.object.zoom)){ var l=gis.script.getmapinLayer(objinfo.marktypename); if(!l&&gis.script.markersLayers[objinfo.marktypename]){ map.addLayer(gis.script.markersLayers[objinfo.marktypename]); } }else{ var l=gis.script.getmapinLayer(objinfo.marktypename); if(l){ map.removeLayer(l); } } } } } var boatvectorLayers=gis.script.addboatvectorLayer([]); gis.script.removeLayer([labelLayer,gqvectorLayer,jyrvectorLayer,mtvectorLayer,bwvectorLayer,boatLayer]); gis.script.removeLayer(boatvectorLayers); //gis.script.removeLayer(gis.script.addboatvectorLayer([])); if(labelLayer){ if(e.object&&(e.object.zoom>5)){ var l=map.getLayer(labelLayer.id); if(!l){ map.addLayer(labelLayer); } } } if(gqvectorLayer){ if(e.object&&(e.object.zoom>5&&e.object.zoom<7)){ var l=map.getLayer(gqvectorLayer.id); if(!l){ map.addLayer(gqvectorLayer); } } } //jyrvectorLayer if(jyrvectorLayer){ if(e.object&&e.object.zoom>5){ var l=map.getLayer(jyrvectorLayer.id); if(!l){ map.addLayer(jyrvectorLayer); } } } if(mtvectorLayer){ if(e.object&&e.object.zoom>8){ var l=map.getLayer(mtvectorLayer.id); if(!l){ map.addLayer(mtvectorLayer); } } } if(bwvectorLayer){ if(e.object&&e.object.zoom>8){ var l=map.getLayer(bwvectorLayer.id); if(!l){ map.addLayer(bwvectorLayer); } } } if(boatvectorLayers.length>0){ if(gis.script.markersLayers&&gis.script.pitchonMarkers&&gis.script.markersLayers[gis.script.pitchonMarkers]){ gis.script.markersLayers[gis.script.pitchonMarkers].clearMarkers(); } if(boatLayer){ if(e.object&&e.object.zoom>8){ var l=map.getLayer(boatLayer.id); if(!l){ map.addLayer(boatLayer); } } } for(var ik=0;ik8){ var l=map.getLayer(blayer.id); if(!l){ map.addLayer(blayer); } } } } } */ gis.script.switchtoLayer(); } /* * 根据地图比例以及图层配置动态设置显示图层以及图层层次设置 */ gis.script.switchtoLayer = function(){ //alert(gis.script.locationLayerRunRemoveAllFeatures); /* if(gis.script.locationLayerRunRemoveAllFeatures){ locationLayer.removeAllFeatures(); } gis.script.locationLayerRunRemoveAllFeatures=true; */ //alert(gis.script.locationLayerRunRemoveAllFeatures); //locationLayer.removeAllFeatures(); //gis.script.removeLayer([gis.script.markersLayers.markersgkLayer,gis.script.markersLayers.markersQskLayer]); //gis.script.removeLayer([gis.script.markersLayers.gzkMarkersLayer]); if(gis.script.markersLayers){ for(var nl in gis.script.markersLayers){ gis.script.removeLayer([gis.script.markersLayers[nl]]); } } /* if(gis.script.selectallLayers){ for(var nl in gis.script.selectallLayers){ gis.script.removeLayer([gis.script.selectallLayers[nl]]); } } */ gis.script.removeLayer([labelLayer,jyrlabelLayer,gqvectorLayer,zyqvectorLayer,mdvectorLayer,jyrvectorLayer,mtvectorLayer,bwvectorLayer,boatLayer]); gis.script.removeLayer(gis.script.addboatvectorLayer([])); //map.addLayer(eval("("+"gis.script.markersLayers.markersgkLayer"+")")); if(gis.script.layersInitconfig&&gis.script.layersInitconfig.length){ for(var i=0;i=map.zoom)){ //alert(objinfo.layerName); if(eval("("+objinfo.layerName+")")){ if(!gis.script.isBlank(objinfo.clear)){ eval("("+objinfo.layerName+"."+objinfo.clear+"())") } map.addLayer(eval("("+objinfo.layerName+")")); } } } } } if(modifyvectorLayer){ var mvLayer=map.getLayer(modifyvectorLayer.id); if(mvLayer){ gis.script.removeLayer([modifyvectorLayer]); map.addLayer(modifyvectorLayer); } } } /* * 根据id获取markersLayer */ gis.script.getmapinLayer = function(id) { if(gis.script.markersLayers[id]){ var vid=gis.script.markersLayers[id].id return map.getLayer(vid); } return; } /* * 删除图层 */ gis.script.removeLayer = function(ar) { if(ar&&ar.length){ for(var i=0;i0&&modifyFeature){ if(gis.script.clickeditcommon({id:id,openid:'txsz'})){ return; }; if(locationLayer){ // locationLayer.removeAllFeatures(); } //进入编辑地物状态 //gis.script.removeLayer([modifyvectorLayer]); modifyFeature.activate(); // gis.script.toastmessage({text:'点击编辑区域后进入编辑状态。'}); }else{ gis.script.toastmessage({text:'请先选择可编辑区域。'}); gis.script.buttonimgObjRestore(id); } }else if(id=='txsz'){//新增 if(isLine == true && (modifyvectorLayer.features.length>0) ){ gis.script.toastmessage({text:'不可以新增。'}); }else if(modifyFeature){ if(locationLayer){ locationLayer.removeAllFeatures(); } if(gis.script.clickeditcommon({id:id,openid:'txbj'})){ return; }; if(isLine){ drawPolyline.activate(); }else{ drawPolygon.activate(); } // gis.script.toastmessage({text:'可在地图上绘制地物。'}); } }else if(id=='txsc'){//删除 if(modifyvectorLayer.features.length>0){ //不存在原有图形 if(!isHaveGeo){ gis.edit.delFeatureCompleted(null); }else if(nowModifyFeature&&modifyFeature){ //gis.script.clearAllDeactivate(true); delFeature = nowModifyFeature ; gis.edit.delFeatureCompleted(delFeature); } }else{ gis.script.toastmessage({text:'请先选择可删除区域。'}); } }else if(id=='txpstg'){ /* var objdata=JSON.stringify({syncsucceed:true,tableName:"GK_BASIC_JSJY_GK_GQ",zyid:"4"}); gis.script.jsonAjax({url:contextPath+"/editgis/syncgisStatus.html",contentType:'application/json;charset=utf-8',async:true,data:objdata}, function(data){ }); return; */ //gis.edit.syncDataLayer(); gis.edit.syncDataLayerMorefromid({gq:'4C7359F3F188412289C1B3590D64DA04,16CEF44E94FC4148BA7746B9953F4BC4,72D1DEFF430E4526AE51395F8F594991,99D1DEFF439E4526AE51399F8F594991'}); //gis.edit.syncDataLayerMore({gq:[4,5,6,7,8],bw:[4,5,6,7,8]}); /* gis.edit.syncDataLayerMore({gq:[4]}); $("#"+id).unbind('click').click(function(){ alert(gis.script.layerloadover);//判断页面是否加载完成 alert(JSON.stringify(moreSyncResult));//判断图层是否同步完成 }); */ } } gis.script.clickeditcommon = function(obj) { // $("#txsc").css("display","none"); gis.script.buttonimgObjRestore(obj.openid); gis.script.removeAllPopup(); //如果是编辑状态就终止编辑 /* if(modifyvectorLayer){ var mvLayer=map.getLayer(modifyvectorLayer.id); if(mvLayer){ gis.script.clearAllDeactivate(); gis.script.toastmessage({text:'退出地物编辑状态。'}); return; } } */ var imgObj=$("#"+obj.id).find("img"); var isend=false; if(imgObj&&imgObj.length){ $.each(imgObj, function(i,val){ var tua=$(val); var attrSrc=tua.attr('src'); if(attrSrc&&attrSrc.indexOf("_no.png")<0){ gis.script.clearAllDeactivate(true); gis.script.toastmessage({text:'退出地物编辑状态。'}); isend = true; } }); } if(isend){ $("#txsc").css("display",""); return isend; } // //编辑地物前地图定位到地物中心 try{ if(nowModifyFeature.attributes&&nowModifyFeature.attributes.editinfoobj){ //console.log("1.nowModifyFeature",nowModifyFeature.attributes.editinfoobj); var editinfoobj=nowModifyFeature.attributes.editinfoobj; map.setCenter(new SuperMap.LonLat(editinfoobj.lon,editinfoobj.lat)); } }catch(e){ } gis.script.clearAllDeactivate(true); map.addLayer(modifyvectorLayer); } gis.script.buttonimgObjRestore = function(id) { var imgObj=$("#"+id).find("img"); if(imgObj&&imgObj.length){ $.each(imgObj, function(i,val){ var tua=$(val); var attrSrc=tua.attr('src'); if(attrSrc&&attrSrc.indexOf("_no.png")>0){ tua.attr('src',attrSrc.replace("_no.png",".png")); } }); } } /* * 信息提示 */ gis.script.toastmessage = function(obj) { var newObject = jQuery.extend(true,{ sticky : false, position : 'top-right', type : 'notice',//type:notice,type:success closeText: '', stayTime : 2000, position : 'top-center'},obj); $().toastmessage('showToast',newObject); //console.log("...",newObject); } /* *清除编辑的feature */ gis.script.clearAllDeactivate = function(drawisdeactivate) { if(modifyFeature){ if(modifyvectorLayer){ gis.script.removeLayer([modifyvectorLayer]); } if(drawisdeactivate){ drawPolygon.deactivate(); } modifyFeature.deactivate(); } } /* * 创建可编辑图层 */ gis.script.initModifyFeature = function() { if(layerUserControl&&typeof(layerUserControl)!='undefined'){ if(typeof(layerUserControl.modifyFeature)!='undefined'){ if(layerUserControl.modifyFeature==false){ return; } } } //alert(layerUserControl.modifyFeature); modifyFeature = new SuperMap.Control.ModifyFeature(modifyvectorLayer); drawPolygon = new SuperMap.Control.DrawFeature(modifyvectorLayer, SuperMap.Handler.Polygon); drawPolyline = new SuperMap.Control.DrawFeature(modifyvectorLayer, SuperMap.Handler.Path); drawPolygon.events.on({"featureadded": function(drawGeometryArgs){ gis.edit.addFeatureCompleted(drawGeometryArgs); }}); drawPolyline.events.on({"featureadded": function(drawGeometryArgs){ gis.edit.addFeatureLineCompleted(drawGeometryArgs); }}); map.addControl(drawPolygon); map.addControl(drawPolyline); map.addControl(modifyFeature); } /* * 图层编辑完成后的触发函数 */ var editFlag = 0; var arrEditFeature=[]; var editFeature; gis.script.editFeatureCompleted = function(event) { //alert($.confirm) $.confirm({ title : '确认框', content : '确认保存编辑区域吗', confirm : function() { if(event){ var feature = event.feature; editFlag = 1; // gis.script.editgisFeatureService(feature); if(!feature.geometry.xzId ){ // arrEditFeature.push(feature); editFeature=feature; }else if(multiPolygonArrayAdd && multiPolygonArrayAdd.length>0){ for(var i=0;i0){ for(var i=0;i"+layers[j].name+""); $(""+layers[j].name+"").addClass("popupSpan").appendTo($("#layers")); //break; } } //alert("-->"+$("#layers .checkboxSel").length) var cb=$("#layers .checkboxSel"); cb.click(function () { alert(layer.params.layersID) var str=new Array(); str.push("["); $.each(cb, function(i, item){ if(eval(item.checked) == true){ str.push(args); } }); str.push(",]"); alert(str.length+"-->"+str.join("").replace(",]","]")); //layer.redraw(); }); //样式为BootStrap框架设置 /* cb.hover(function () { $(this).addClass("label-success"); }, function () { $(this).removeClass("label-success"); }); */ gis.script.createTempLayer(); } gis.script.createTempLayer = function(){ var cb=$("#layers .checkboxSel"); var layerStatusParameters = new SuperMap.REST.SetLayerStatusParameters(); layerStatusParameters = (function(parameters) { //alert(parameters); $.each(cb, function(i, item){ var layerStatus = new SuperMap.REST.LayerStatus(); layerStatus.layerName = item.value; layerStatus.isVisible = eval(item.checked); //alert(layerStatus.layerName+"--"+layerStatus.isVisible) parameters.layerStatusList.push(layerStatus); }); //设置资源在服务端保存的时间,单位为分钟,默认为10 parameters.holdTime = 30; return parameters; })(layerStatusParameters); var setLayerStatusService = new SuperMap.REST.SetLayerStatusService(gis.script.url); setLayerStatusService.events.on({ "processCompleted": function(createTempLayerEventArgs){ tempLayerID = createTempLayerEventArgs.result.newResourceID; //创建 TiledDynamicRESTLayer //layer = new SuperMap.Layer.TiledDynamicRESTLayer("World", gis.script.url, {transparent: true, cacheEnabled: false, redirect: true, layersID: tempLayerID}, {maxResolution: "auto", bufferImgCount: 0}); //layer.bufferImgCount = 0; //layer.events.on({"layerInitialized": gis.script.addLayer}); layer = new SuperMap.Layer.TiledDynamicRESTLayer("World", gis.script.url, {transparent: true, cacheEnabled: false, redirect: true, layersID: tempLayerID},{maxResolution:"auto", bufferImgCount: 0}); layer.bufferImgCount = 0; layer.events.on({"layerInitialized": gis.script.addLayer}); }}); setLayerStatusService.processAsync(layerStatusParameters); } gis.script.initLayersInfo = function() { gis.script.getLayersInfo(); } gis.script.setMapCenter = function(info){ //alert(info.zoomSize); if(info&&typeof(info.lon)!="undefined"&&typeof(info.lat)!="undefined"){ map.setCenter(new SuperMap.LonLat(info.lon, info.lat),info.zoomSize); issetCenter=true; } } gis.script.setMaplocationLayer = function(feature,o){ locationLayer.removeAllFeatures(); if(feature){ locationLayer.addFeatures(feature); try{ if(o.labelfield&&feature.attributes[o.labelfield]){ labelLayer.removeAllFeatures(); var geoText = new SuperMap.Geometry.GeoText(centerLonLat.lon, centerLonLat.lat,feature.attributes[o.labelfield]); var geotextFeature = new SuperMap.Feature.Vector(geoText); labelLayer.addFeatures([geotextFeature]); } }catch(e){ } } } var switchto=false; gis.script.testSwitchto = function(){ var uri; if(switchto){ uri="/znjg/zygl/treeiframe.html?model=gis&treeType=ty" }else{ uri="/znjg/zygl/treeiframe.html?model=gis&treeType=cbdt" } //alert(gis.script.queryString(uri,"treeType")); var o={menuurl:uri} gis.script.switchto(o); switchto=!switchto; } /* * 切换专辑图 */ gis.script.switchto = function(o){ if(o&&o.menuurl){ if(!gis.script.layerloadover){ window.location.href=o.menuurl; return; } var ttype=gis.script.queryString(o.menuurl,"treeType"); gis.script.switchTree(ttype); } //alert($(".treedivClass").length); } gis.script.switchTree = function(ttype){ treeType=ttype; if(treeType){ //alert(treeType); $.each($(".treedivClass"), function(i,val){ var ua=$(val); ua.css("display","none"); }); $("#tree"+treeType+"div").css("display",""); } gis.script.initlayersconfig(); //gis.script.settrendsLayer("gkMarkLayer","false"); //gis.script.settrendsLayer("gqvectorLayer","false"); //gis.script.settrendsLayer("boatonLayers",'true'); gis.script.switchtoLayer(); gis.script.switchtckzTree(); gis.script.switchcbsslist(ttype); } gis.script.switchcbsslist = function(ttype){ if(ttype=='cbdt'){ $("#cbss").css("display",""); }else{ $("#cbss").css("display","none"); $("#cbsslist").css("display","none"); } //$("#txbj").css("display",""); if(layerUserControl&&typeof(layerUserControl)!='undefined'){ if(typeof(layerUserControl.modifyFeature)!='undefined'){ if(layerUserControl.modifyFeature==true){ $("#txbj").css("display",""); $("#txsz").css("display",""); $("#txsc").css("display",""); //$("#txpstg").css("display",""); } } } var kk=0; for(var ii=0;ii