1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417141814191420142114221423142414251426142714281429143014311432143314341435143614371438143914401441144214431444144514461447144814491450145114521453145414551456145714581459146014611462146314641465146614671468146914701471147214731474147514761477147814791480148114821483148414851486148714881489149014911492149314941495149614971498149915001501150215031504150515061507150815091510151115121513151415151516151715181519152015211522152315241525152615271528152915301531153215331534153515361537153815391540154115421543154415451546154715481549155015511552155315541555155615571558155915601561156215631564156515661567156815691570157115721573157415751576157715781579158015811582158315841585158615871588158915901591159215931594159515961597159815991600160116021603160416051606160716081609161016111612161316141615161616171618161916201621162216231624162516261627162816291630163116321633163416351636163716381639164016411642164316441645164616471648164916501651165216531654165516561657165816591660166116621663166416651666166716681669167016711672167316741675167616771678167916801681168216831684168516861687168816891690169116921693169416951696169716981699170017011702170317041705170617071708170917101711171217131714171517161717171817191720172117221723172417251726172717281729173017311732173317341735173617371738173917401741174217431744174517461747174817491750175117521753175417551756175717581759176017611762176317641765176617671768176917701771177217731774177517761777177817791780178117821783178417851786178717881789179017911792179317941795179617971798179918001801180218031804180518061807180818091810181118121813181418151816181718181819182018211822182318241825182618271828182918301831183218331834183518361837183818391840184118421843184418451846184718481849185018511852185318541855185618571858185918601861186218631864186518661867186818691870187118721873187418751876187718781879188018811882188318841885188618871888188918901891189218931894189518961897189818991900190119021903190419051906190719081909191019111912 |
- 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)<parseFloat(b.orderby)?-1:1;
- }
- return 0;
- });
- //console.log("CCC1:",gis.script.layersInitconfig);
- //console.log("CCC2:",gis.script.layersInitconfigObject);
- }
- /*
- * 配置信息存入layersInitconfigObject,方便读取图层配置信息
- */
- gis.script.setlayersInitconfigObject = function(key,obj) {
- //alert(key);
- var info=gis.script.layersInitconfigObject[key];
- if(!info){
- gis.script.layersInitconfigObject[key]=[];
- info=gis.script.layersInitconfigObject[key];
- }
- info.push(obj);
- }
- /*
- * 控制图层信息,可以通过设置动态显示图层。
- */
- gis.script.settrendsLayer=function (key,isshow){
- var info=gis.script.layersInitconfigObject[key];
- if(info&&info.length){
- for(var kk=0;kk<info.length;kk++){
- var obj=info[kk];
- if(obj){
- obj.isshow=isshow;
- }
- }
- }
- //console.log("CCC1-1:",gis.script.layersInitconfig);
- }
- /*
- * 地图可显示的比例尺
- */
- gis.script.scales=[2060000,1180000,640000, 320000, 160000, 80000, 40000, 20000, 10000, 5000, 2500,1250];
- /*
- gis.script.scales=[0.0000008234577570,0.000001180591620,0.0000020811127177082523,0.0000041622254354165045,0.000008324450870833009,0.000016648901741666018,
- 0.000033297803483332036,0.00006659560696666407,0.00013319121393332814,0.0002663824278666563,0.0005327648557333126,
- 0.0010655297114666252,0.0021310594229332503,0.004262118845866501,0.008524237691733001,0.017048475383466002];
- */
- /*
- * 初始化,加载SuperMap以及地图影像,根据分辨率动态设置按钮位置
- */
- gis.script.init = function() {
- var bgrounddiv=$("#bgrounddiv");
- //bgrounddiv.css("width",bgrounddiv.width()-2);
-
- //alert(bgrounddiv.offset().left);
- $("#yxslqh").css("top",bgrounddiv.offset().top+10);
- //$("#yxslqh").css("left",bgrounddiv.offset().left+23);
- $("#yxslqh").css("right",25);
- $("#yxslqh img").attr("src",imgPath+'/satellite.png');
- $("#yxslqh img").bind("click",function(e){
- if(gis.script.layerloadover&&layer&&layeryx){
- if(gis.script.yxslqh){
- layer.setVisibility(true);
- layeryx.setVisibility(false);
- map.setBaseLayer(layer);
-
- $(this).attr("src",imgPath+'/satellite.png');
- }else{
- layer.setVisibility(false);
- layeryx.setVisibility(true);
- map.setBaseLayer(layeryx);
-
- $(this).attr("src",imgPath+'/map.png');
- }
- gis.script.yxslqh=!gis.script.yxslqh;
- }
- //gis.script[this.id](this);
- });
-
- annarray=['tckz','cbss','txbj','txsz','txsc','txpstg'];
- for(var ii=0;ii<annarray.length;ii++){
- var annobj=$("#"+annarray[ii]);
- if(annobj&&annobj.length){
- annobj.css("top",bgrounddiv.offset().top+10);
- // annobj.css("right",32+52*(ii+1));
-
- /*annobj.bind("mousedown",function(){
- $(this).css("border","1px solid transparent");
- });
- annobj.bind("mouseup",function(){
- $(this).css("border","0px solid transparent");
- });
- annobj.bind("mouseout",function(){
- $(this).css("border","0px solid #A5AAB4");
- });*/
- /*
- annobj.bind("click",function(e){
- $("#"+this.id+"list").show("slow");
- });
- */
- annobj.bind("click",function(e){
- /*
- var lobj=$("#"+this.id+"list");
- if(lobj.is(':hidden')){
- for(var ik=0;ik<annarray.length;ik++){
- $("#"+annarray[ik]+"list").hide("slow");
- }
- lobj.show("slow");
- }else{
- lobj.hide("slow");
- }
- //lobj.show("slow");
- */
- gis.script.buttonclickFun(this.id);
- });
- }
- }
-
- $("#tckz_close").bind("click",function(e){
- $("#tckzlist").hide("slow");
- gis.script.buttonimgObjRestore('tckz');
- });
- /*
- $("#tckz").css("top",bgrounddiv.offset().top+10);
- //$("#yxslqh").css("left",bgrounddiv.offset().left+23);
- $("#tckz").css("right",85);
- $("#tckz img").bind("click",function(e){
- $("#tckzlist").show("slow");
- });
- $("#tckz_close").bind("click",function(e){
- $("#tckzlist").hide("slow");
- });
-
- $("#tckz").bind("mousedown",function(){
- $("#tckz").css("border","1px solid transparent");
- });
- $("#tckz").bind("mouseup",function(){
- $("#tckz").css("border","0px solid transparent");
- });
-
- $("#tckz").bind("mouseover",function(){
- //border:0px solid #A5AAB4;
- //$("#tckz").css("border","1px solid transparent");
- });
- $("#tckz").bind("mouseout",function(){
- //border:0px solid #A5AAB4;
- $("#tckz").css("border","0px solid #A5AAB4");
- });
- */
-
- $('#banner').mousedown(function(event) {
- var isMove = true;
- var abs_x = event.pageX - $('div.moveBar').offset().left;
- var abs_y = event.pageY - $('div.moveBar').offset().top;
- $(document).mousemove(function(event) {
- if (isMove) {
- var obj = $('div.moveBar');
- obj.css({
- 'left' : event.pageX - abs_x,
- 'top' : event.pageY - abs_y
- });
- }
- }).mouseup(function() {
- isMove = false;
- });
- });
-
- /*
- $.each(uiaccordion.find('a').parent(), function(i,val){
- var ua=$(val);
- alert(i+">>"+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;ik<boatvectorLayers.length;ik++){
- var blayer=boatvectorLayers[ik];
- if(blayer){
- if(e.object&&e.object.zoom>8){
- 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<gis.script.layersInitconfig.length;i++){
- var objinfo=gis.script.layersInitconfig[i];
- //alert(data.layerName);
- //map.addLayer(eval("("+data.layerName+")"));
- /*
- if(objinfo.layerName=="gis.script.boatonLayer.boatdanger1"){
- alert(objinfo.isshow&&objinfo.isshow==='true');
- }
- */
- if(objinfo.isshow&&objinfo.isshow==='true'){
- if((!gis.script.isNum(objinfo.showMinzoom)||objinfo.showMinzoom<=map.zoom)&&(!gis.script.isNum(objinfo.showMaxzoom)||objinfo.showMaxzoom>=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;i<ar.length;i++){
- var templayer=ar[i];
- if(templayer){
- var l=map.getLayer(templayer.id);
- if(l){
- map.removeLayer(l);
- }
- }
- }
- }
- }
- /*
- * 加载矢量地图,以及添加layerInitialized监听事件,根据treeType切换树展示
- */
- gis.script.addmoreLayer = function() {
- layeryx = new SuperMap.Layer.TiledDynamicRESTLayer("yxdtLayer", gis.script.yxurl, null,{maxResolution:"auto",scales:gis.script.scales});
- layeryx.visibility=false;
- layeryx.events.on({"layerInitialized":function() {
- map.addLayers([layer,layeryx]);
- //出图,map.setCenter函数显示地图
- //var lonlat = layer.maxExtent.getCenterLonLat();
- lon =119.66;
- lat =32.57;
- //定位地图中心
- map.setCenter(new SuperMap.LonLat(lon, lat), 0);
- //map.setCenter(new SuperMap.LonLat(0, 0), 1);
- //map.zoomToScale(1.0/1020090.0,true);
- //gis.script.layerloadover=true;
-
- gis.script.initOthenLayer();
- gis.script.initModifyFeature();
- //gis.script.loadboatLayer(boatLayer,[{id:'1',lon:119.66,lat:32.57},{id:'2',lon:119.56,lat:32.47}]);
-
- /*
- if(gis.script.loadcbdataService&&!document.getElementById("treecbdtdiviframe")){
- gis.script.loadcbdataService(gis.script.phase.init);
- }
- */
- //alert(treeType);
- //gis.script.initlayersconfig();
- //gis.script.switchtoLayer();
-
- gis.edit.init();
- //根据treeType切换树展示
- gis.script.switchTree(treeType);
-
- //gis.script.openiframetree();
-
-
- }});
- }
- /*
- * 加载船舶动态的树页面
- */
- gis.script.openiframetree = function() {
- //treecbdtdiviframe
- if(document.getElementById("treecbdtdiviframe")){
- document.getElementById("treecbdtdiviframe").src=contextPath+"/zygl/treeiframe.html?model=cbdtTree";
- }
- if(document.getElementById("treeaqjgdiviframe")){
- //document.getElementById("treeaqjgdiviframe").src=contextPath+"/zygl/treeiframe.html?model=aqjgTree";
- }
- }
- /*
- * 地图按钮控制事件
- */
- gis.script.buttonclickFun = 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(".png","_no.png"));
- }else{
- tua.attr('src',attrSrc.replace("_no.png",".png"));
- }
-
- });
- }
-
- if(id=='tckz'||id=='cbss'){
- var lobj=$("#"+id+"list");
- if(lobj.is(':hidden')){
- for(var ik=0;ik<annarray.length;ik++){
- $("#"+annarray[ik]+"list").hide("slow");
- }
- lobj.show("slow");
- }else{
- lobj.hide("slow");
- }
- }else if(id=='txbj'){//编辑
- if(modifyvectorLayer.features.length>0&&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;i<multiPolygonArrayAdd.length;++i){
- if(feature.geometry.xzId == multiPolygonArrayAdd[i].xzId ){
- multiPolygonArrayAdd[i]=feature.geometry;
- return;
- }
- }
- }
- /*else if(arrAddFeature&&arrAddFeature.length>0){
- for(var i=0;i<arrAddFeature.length;++i){
- if(arrAddFeature[i].feature){
- if(feature.attributes.xzId == arrAddFeature[i].feature.attributes.xzId ){
- arrAddFeature[i]=feature;
- return;
- }
- }else if(!arrAddFeature[i].feature){
- if(feature.attributes.xzId == arrAddFeature[i].attributes.xzId ){
- arrAddFeature[i]=feature;
- return;
- }
- }
-
-
- }
-
- // arrEditFeature.push(feature);
- }*/
- // gis.edit.submitToService();
- }
- },
- cancel: function(){
- //console.log('the user clicked cancel');
- gis.script.buttonimgObjRestore('txbj');
- gis.script.clearAllDeactivate();
- }
- });
-
- //gis.script.buttonimgObjRestore('txbj');
- //gis.script.clearAllDeactivate();
- }
- /*
- * 编辑信息写入
- */
- gis.script.editgisFeatureService = function(feature,newfeature) {
- gis.edit.progressdiv('show');
-
- if(feature&&feature.attributes
- &&feature.attributes.gisEditLayerinfoKey
- &&gis.script.isNum(feature.attributes.featureidval)){
- if(dataServices){
- gis.script.consolelog('dataServices',dataServices);
- for(var n in dataServices){
- var data=gisConfigBean.dataconfig[n];
- if(data&&feature.attributes.gisEditLayerinfoKey==data.gisLayerinfoKey){
- data=jQuery.extend(true, {}, data);
- data.datasetNames=data.datasetNames.split(",");
- data.fields=data.fields.split(",");
- data.url=data.url||defdataUrl;
- //console.log("data",data);
-
- if(data.fields&&data.fields.length){
- var attributes = feature.attributes;
- var attrNames = data.fields;
- var attrValues = [];
- for(var i=0;i<attrNames.length;i++){
- //alert(attrNames[i]);
- attrValues.push(attributes[attrNames[i]]);
- }
- if(feature&&newfeature&&feature.geometry&&newfeature.components){
- //var collectionGeometry = new SuperMap.Geometry.Collection([feature.geometry,newfeature.geometry]);
- //var cfeature=feature.clone();
- var multiPolygonArray=[];
- if(feature.geometry.components&&feature.geometry.components.length){
- for(var i=0;i<feature.geometry.components.length;i++){
- multiPolygonArray.push(feature.geometry.components[i]);
- }
- }
- if(newfeature.components&&newfeature.components.length){
- for(var i=0;i<newfeature.components.length;i++){
- multiPolygonArray.push(newfeature.components[i]);
- }
- }
- //multiPolygonArray.push(newfeature.geometry);
- /*
- if(newfeature.geometry.components&&newfeature.geometry.components.length){
- for(var i=0;i<newfeature.geometry.components.length;i++){
- multiPolygonArray.push(newfeature.geometry.components[i]);
- }
- }
- */
- console.log("multiPolygonArray",multiPolygonArray);
- var multiPolygon = new SuperMap.Geometry.MultiPolygon(multiPolygonArray);
- console.log("multiPolygon",multiPolygon);
- //console.log("multiPolygon.constructor",multiPolygon.constructor);
- feature.geometry=multiPolygon;
-
- }
-
-
- var features = {
- fieldNames:attrNames,
- fieldValues:attrValues,
- geometry:feature.geometry
- };
- //console.log("features",features);
- //alert(features.geometry.id+"--"+feature.attributes.featureidval)
- features.geometry.id = feature.attributes.featureidval;
- var editFeatureParameter = new SuperMap.REST.EditFeaturesParameters({
- features: [features],
- editType: SuperMap.REST.EditType.UPDATE
- });
-
- if(data.url&&data.datasetNames&&data.datasetNames.length==1){
- var dnames=data.datasetNames[0].split(":");
- if(dnames&&dnames.length==2){
- //console.log("dnames",dnames);
- var url=data.url+"/datasources/"+dnames[0]+"/datasets/"+dnames[1];
- //alert("http://127.0.0.1:8090/iserver/services/data-ST/rest/data/datasources/gkzyYS/datasets/L_GQ_PY"+"\n"+url);
- var editFeatureService = new SuperMap.REST.EditFeaturesService(url, {
- eventListeners: {
- "processCompleted": function(editFeaturesEventArgs) {
- gis.script.updateFeaturesProcessCompleted(editFeaturesEventArgs,feature);
- },
- "processFailed":function(e) {
- gis.script.sqlProcessFailed(e);
- //gis.edit.syncgisStatus({editsucceed:false});
- }
- }
- });
- editFeatureService.processAsync(editFeatureParameter);
- }
- }
-
- }
-
- break;
- }
- }
- }
- }
-
- gis.script.buttonimgObjRestore('txbj');
- gis.script.clearAllDeactivate();
- }
- /*
- * 提示用户地物编辑是否保存成功,并且刷新图层
- */
- var gisSaveResult ;
- gis.script.updateFeaturesProcessCompleted = function(editFeaturesEventArgs,feature) {
- gis.edit.progressdiv('none');
- gis.script.buttonimgObjRestore('txbj');
- gis.script.buttonimgObjRestore('txsz');
- $("#txsc").css("display","");
- if(editFeaturesEventArgs&&editFeaturesEventArgs.result.resourceInfo.succeed) {
- //alert("更新地物成功");
- gis.script.toastmessage({text:'更新地物成功。',type:'success'});
- gisSaveResult = true;
- gis.script.updateFeaturesloadLayerdata(editFeaturesEventArgs,feature);
-
- }else{
- gisSaveResult = false;
- gis.script.toastmessage({text:'更新地物失败。',type:'warning'});
- }
-
- gis.edit.syncgisStatus({editsucceed:editFeaturesEventArgs.result.resourceInfo.succeed});
- }
- //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};
- gis.script.updateFeaturesloadLayerdata2 = function(editFeaturesEventArgs,feature) {
- if(feature&&feature.attributes
- &&feature.attributes.gisEditLayerinfoKey){
- //console.log("feature",feature);//uflldLayerMap
- if(uflldLayerMap&&uflldLayerMap[feature.attributes.gisEditLayerinfoKey]){
- var tlayer=uflldLayerMap[feature.attributes.gisEditLayerinfoKey];
- if(dataServices){
- for(var n in dataServices){
- var data=gisConfigBean.dataconfig[n];
- if(data&&feature.attributes.gisEditLayerinfoKey==data.gisLayerinfoKey){
- data=jQuery.extend(true, {}, data);
-
- if(data.gisLayerinfoAttrKey&&feature.attributes[data.gisLayerinfoAttrKey]){
- /*
- var param={};
- param[data.gisLayerinfoAttrKey]=feature.attributes[data.gisLayerinfoAttrKey];
- */
- var fba=tlayer.getFeaturesByAttribute(data.gisLayerinfoAttrKey,feature.attributes[data.gisLayerinfoAttrKey]);
- if(fba&&fba.length==1){
- if(locationLayer){
- locationLayer.removeAllFeatures();
-
- var cloneFeature=feature.clone();
- var fillColor="#a4a5a7";//"#ffff00"
- var fillOpacity=0.5;
- cloneFeature.style = {
- fill:true,
- stroke:true,
- strokeColor: "#ffff00",
- strokeWidth: 3,
- //pointerEvents: "visiblePainted",
- //fillColor: "#a4a5a7",
- strokeDashstyle:"solid",
- fillColor: fillColor,
- fillOpacity: fillOpacity
- };
- locationLayer.addFeatures(cloneFeature);
- }
- tlayer.removeFeatures(fba);
-
- if(data.Model&&data.Model[gis.script.modelid]){
- var model=data.Model[gis.script.modelid];
- data.datasetNames=data.datasetNames.split(",");
- data.fields=data.fields.split(",");
- data.cachedata=model.cachedata||data.cachedata;
- data.zoom=model.zoom||data.zoom;
- data.processCompleted=model.processCompleted;
- data.onSelectOpenPopkey=model.onSelectOpenPopkey;
- data.modelObj=model;
- data.url=data.url||defdataUrl;
- data.attributeFilter=data.gisLayerinfoAttrKey+"="+feature.attributes[data.gisLayerinfoAttrKey];
- //console.log("data",data);
-
- gis.script.loadLayerFeaturesBySqls(data);
- }
-
-
- }
- }
-
- break;
- }
- }
- }
- }
- }
- }
- gis.script.updateFeaturesloadLayerdata = function(editFeaturesEventArgs,feature) {
- gis.edit.init();
- }
- /*
- * 创建地图中的所有所需的图层
- */
- gis.script.initOthenLayer = function() {
-
- gkvectorLayer = new SuperMap.Layer.Vector("gkvectorLayer");
- gqvectorLayer = new SuperMap.Layer.Vector("gqvectorLayer");
- zyqvectorLayer = new SuperMap.Layer.Vector("zyqvectorLayer");
- mdvectorLayer = new SuperMap.Layer.Vector("mdvectorLayer");
- jyrvectorLayer = new SuperMap.Layer.Vector("jyrvectorLayer");
- locationLayer = new SuperMap.Layer.Vector("locationLayer");
- mtvectorLayer = new SuperMap.Layer.Vector("mtvectorLayer");
- bwvectorLayer = new SuperMap.Layer.Vector("bwvectorLayer");
- vectorLayer = new SuperMap.Layer.Vector("vector");
- boatLayer = new SuperMap.Layer.Vector("boatLayer");
- markersLayer = new SuperMap.Layer.Markers("Markers");
- //modifyvectorLayer = new SuperMap.Layer.Vector("modifyvectorLayer", {renderers: ["Canvas2"]});
- modifyvectorLayer = new SuperMap.Layer.Vector("modifyvectorLayer");
- modifyvectorLayer.events.on({"afterfeaturemodified": gis.script.editFeatureCompleted});
- uflldLayerMap={"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,"GK_BASIC_JSJY_GK_MD":mdvectorLayer};
-
- gis.script.markersLayers.markersgkLayer=new SuperMap.Layer.Markers("markersgkLayer");
- gis.script.markersLayers.gzkMarkersLayer=new SuperMap.Layer.Markers("gzkMarkersLayer");
- gis.script.markersLayers.markersQskLayer=new SuperMap.Layer.Markers("markersQskLayer");
-
-
- //gis.script.selectallLayers.bwSelectvectorLayer=new SuperMap.Layer.Vector("bwSelectvectorLayer");
-
- if(gis.script.initboatonLayer){
- gis.script.initboatonLayer();
- }
-
- boatLayer.styleMap = new SuperMap.StyleMap({
- "default":new SuperMap.Style({
- fillColor:"#000000",
- strokeColor:"#000000",
- fillOpacity: 0.6,
- graphicZIndex:1
- })
- });
-
- gqvectorLayer.styleMap=new SuperMap.StyleMap({
- "default":new SuperMap.Style({
- fill:true,
- fillColor:"#ffffff",
- strokeColor:"#ff0000",
- strokeDashstyle:"longdashdot",
- fillOpacity: 0.1,
- graphicZIndex:1
- }),
- "select":{
- strokeColor: "#ffff00",
- strokeWidth: 2,
- strokeDashstyle:"solid",
- fillColor: "#a4a5a7",
- fillOpacity: 0.5,
- graphicZIndex:2
- }
- });
-
- zyqvectorLayer.styleMap=new SuperMap.StyleMap({
- "default":new SuperMap.Style({
- fill:true,
- fillColor:"#ffffff",
- strokeColor:"#ff0000",
- strokeDashstyle:"longdashdot",
- fillOpacity: 0.1,
- graphicZIndex:1
- }),
- "select":{
- strokeColor: "#ffff00",
- strokeWidth: 2,
- strokeDashstyle:"solid",
- fillColor: "#a4a5a7",
- fillOpacity: 0.5,
- graphicZIndex:2
- }
- });
-
- mdvectorLayer.styleMap=new SuperMap.StyleMap({
- "default":new SuperMap.Style({
- fill:true,
- fillColor:"#ffffff",
- strokeColor:"#ff0000",
- strokeDashstyle:"longdashdot",
- fillOpacity: 0.1,
- graphicZIndex:1
- }),
- "select":{
- strokeColor: "#ffff00",
- strokeWidth: 2,
- strokeDashstyle:"solid",
- fillColor: "#a4a5a7",
- fillOpacity: 0.5,
- graphicZIndex:2
- }
- });
-
- jyrvectorLayer.styleMap=new SuperMap.StyleMap({
- "default":new SuperMap.Style({
- fill:true,
- fillColor:"#ffffff",
- strokeColor:"#e36c09",
- strokeDashstyle:"dash",
- fillOpacity: 0.1,
- graphicZIndex:1
- }),
- "select":{
- strokeColor: "#ffff00",
- strokeWidth: 2,
- strokeDashstyle:"solid",
- fillColor: "#a4a5a7",
- fillOpacity: 0.5,
- graphicZIndex:2
- }
- });
- mtvectorLayer.styleMap=new SuperMap.StyleMap({
- "default":new SuperMap.Style({
- fill:true,
- fillColor:"#e4deea",
- strokeColor:"#a9a297",
- strokeDashstyle:"solid",
- strokeOpacity:0.8,
- strokeWidth:1,
- fillOpacity: 0.5,
- graphicZIndex:1
- }),
- "select":{
- strokeColor: "#ffff00",
- strokeWidth: 2,
- strokeDashstyle:"solid",
- fillColor: "#a4a5a7",
- fillOpacity: 0.5,
- graphicZIndex:2
- }
- });
- bwvectorLayer.styleMap=new SuperMap.StyleMap({
- "default":new SuperMap.Style({
- fill:true,
- fillColor:"#77a4dc",
- strokeColor:"#303030",
- strokeDashstyle:"solid",
- strokeOpacity:0.8,
- strokeWidth:1,
- fillOpacity: 0.1,
- graphicZIndex:1
- }),
- "select":{
- strokeColor: "#ffff00",
- strokeWidth: 2,
- strokeDashstyle:"solid",
- //strokeOpacity:0.8,
- fillColor: "#a4a5a7",
- fillOpacity: 0.5,
- graphicZIndex:2
- }
- });
-
-
- modifyvectorLayer.styleMap=new SuperMap.StyleMap({
- "default":new SuperMap.Style({
- cursor: "inherit",
- fillColor: "#ee9900",
- fillOpacity: 0.4,
- fontColor: "#000000",
- hoverFillColor: "white",
- hoverFillOpacity: 0.8,
- hoverPointRadius: 1,
- hoverPointUnit: "%",
- hoverStrokeColor: "red",
- hoverStrokeOpacity: 1,
- hoverStrokeWidth: 0.2,
- labelAlign: "cm",
- labelOutlineColor: "white",
- labelOutlineWidth: 3,
- pointRadius: 6,
- pointerEvents: "visiblePainted",
- strokeColor: "#ee9900",
- strokeDashstyle: "solid",
- strokeLinecap: "round",
- strokeOpacity: 1,
- strokeWidth: 3
- }),
- "select":{
- cursor: "pointer",
- fillColor: "blue",
- fillOpacity: 0.4,
- fontColor: "#000000",
- hoverFillColor: "white",
- hoverFillOpacity: 0.8,
- hoverPointRadius: 1,
- hoverPointUnit: "%",
- hoverStrokeColor: "red",
- hoverStrokeOpacity: 1,
- hoverStrokeWidth: 0.2,
- labelAlign: "cm",
- labelOutlineColor: "white",
- labelOutlineWidth: 3,
- pointRadius: 6,
- pointerEvents: "visiblePainted",
- strokeColor: "blue",
- strokeDashstyle: "solid",
- strokeLinecap: "round",
- strokeOpacity: 1,
- strokeWidth: 2
- }
- });
- var strategy = new SuperMap.Strategy.GeoText();
- strategy.style = {
- //fontColor:"#FF7F00",
- fontColor:"#000000",
- fontWeight:"bolder",
- fontSize:"14px",
- fill: false,
- fillColor: "#FFFFFF",
- fillOpacity: 1,
- stroke: false,
- strokeColor:"#8B7B8B"
- };
- labelLayer = new SuperMap.Layer.Vector("Label",{strategies: [strategy]});
-
- var jyrstrategy = new SuperMap.Strategy.GeoText();
- jyrstrategy.style = {
- //fontColor:"#FF7F00",
- fontColor:"#000000",
- fontWeight:"bolder",
- fontSize:"14px",
- fill: false,
- fillColor: "#FFFFFF",
- fillOpacity: 1,
- stroke: false,
- strokeColor:"#8B7B8B"
- };
- jyrlabelLayer = new SuperMap.Layer.Vector("jyrlabelLayer",{strategies: [jyrstrategy]});
-
- //gis.script.layerSelectFeature([gkvectorLayer,gqvectorLayer,jyrvectorLayer,bwvectorLayer,vectorLayer]);
- //gis.script.layerSelectFeature([gkvectorLayer,gqvectorLayer,jyrvectorLayer,vectorLayer,boatLayer]);
- // gis.script.layerSelectFeature(gis.script.addboatvectorLayer([gkvectorLayer,gqvectorLayer,zyqvectorLayer,mdvectorLayer,jyrvectorLayer,mtvectorLayer,bwvectorLayer,vectorLayer]));
- gis.script.loadLayerdata();
-
- //map.addLayers([gkvectorLayer,gqvectorLayer,vectorLayer,markersLayer]);
- map.addLayers([labelLayer,locationLayer,gkvectorLayer,vectorLayer,markersLayer]);
-
- /*
- var geoText = new SuperMap.Geometry.GeoText(119.66, 32.57,"中华人民共和国");
- var geotextFeature = new SuperMap.Feature.Vector(geoText);
- labelLayer.addFeatures([geotextFeature]);
- */
- gis.script.layerloadover=true;
- }
- gis.script.addboatvectorLayer = function(objs) {
- if(gis.script.loadcbdataService&&gis.script.boatonLayer&&objs){
- //console.log("CCC:",gis.script.boatonLayer);
- for(var n in gis.script.boatonLayer){
- objs.push(gis.script.boatonLayer[n]);
- }
- //console.log("CCC:",objs);
- }
- return objs
- }
- gis.script.initMarkersLayer = function() {
- markersLayer = new SuperMap.Layer.Markers("Markers");
- layer.events.on({"layerInitialized":function() {
- map.addLayer(markersLayer);
- if(gis.script.loadMarkersLayerdata){
- gis.script.loadMarkersLayerdata();
- }
- }});
- }
- gis.script.initVectorLayer = function() {
- vectorLayer = new SuperMap.Layer.Vector("vector");
-
- layer.events.on({"layerInitialized": function() {
- map.addLayer(vectorLayer);
- gis.script.selectFeature();
-
- }
- });
- }
- gis.script.addLayer = function() {
- map.addLayer(layer);
- //出图,map.setCenter函数显示地图
- var lonlat = layer.maxExtent.getCenterLonLat();
- lon = lonlat.lon;
- lat = lonlat.lat;
- map.setCenter(new SuperMap.LonLat(lon, lat), 0);
- //map.setCenter(new SuperMap.LonLat(0, 0), 1);
- //map.zoomToScale(1.0/1020090.0,true);
- gis.script.layerloadover=true;
- }
- /*
- * 给Feature添加点击事件,Feature包括港区、经营人、码头、泊位、船舶
- */
- gis.script.layerSelectFeature = function(vlist){
- if(vlist&&vlist.length){
-
- var selectFeature= new SuperMap.Control.SelectFeature(vlist, {
- //是否重复触发地物选择事件,只在单选非toggle模式下有效。默认为false,表示处于 选中状态的地物不在触发选择事件。
-
- //repeat:true,
- hover:true,
- callbacks:{
- click: function(feature){
- //for(var cf in currentFeature){alert(cf);}
- //alert(event.clientX+"--"+event.clientY);
- //var lonlat=map.getLonLatFromPixel(new SuperMap.Pixel(event.clientX,event.clientY));
- //alert(lonlat.lon.toFixed(5));
-
- var eve=window.event;
- gis.script.featurecallbacksclick(feature,eve);
- if(feature){
- var fillColor="#a4a5a7";//"#ffff00"
- var fillOpacity=0.5;
-
- var cloneFeature=feature.clone();
- cloneFeature.style = {
- fill:true,
- stroke:true,
- strokeColor: "#ffff00",
- strokeWidth: 3,
- //pointerEvents: "visiblePainted",
- //fillColor: "#a4a5a7",
- strokeDashstyle:"solid",
- fillColor: fillColor,
- fillOpacity: fillOpacity
- };
- locationLayer.addFeatures(cloneFeature);
-
- nowModifyFeature=feature.clone();
-
- /*
- var mapCenter=map.getCenter();
- if(mapCenter){
- nowModifyFeature.attributes.editinfoobj={lon:mapCenter.lon,lat:mapCenter.lat,zoom:map.zoom};
- //console.log("1.getCenter",map.getCenter());
- console.log("1.nowModifyFeature.attributes.editinfoobj",nowModifyFeature.attributes.editinfoobj);
- }
- */
- var centerLonLat = feature.geometry.getBounds().getCenterLonLat();
- if(centerLonLat){
- nowModifyFeature.attributes.editinfoobj={lon:centerLonLat.lon,lat:centerLonLat.lat,zoom:map.zoom};
- //console.log("2.nowModifyFeature.attributes.editinfoobj",nowModifyFeature.attributes.editinfoobj);
- }
-
- modifyvectorLayer.removeAllFeatures();
- modifyvectorLayer.addFeatures(nowModifyFeature);
- }
- }
- },
- onSelect: gis.script.onFeatureSelected,
- onUnselect:gis.script.onUnFeatureSelected,
- });
- map.addControl(selectFeature);
- selectFeature.activate();
-
- }
-
- }
- /**
- * 选中时设置删除按钮可用
- */
- gis.script.onFeatureSelected = function(selectFeature){
- // alert("xz");
- // document.getElementById("txsc").disabled=false;
-
- }
- /**
- * 不选中时设置删除按钮不可用
- */
- gis.script.onUnFeatureSelected = function(selectFeature){
- //alert("qxxz");
- // document.getElementById("txsc").disabled=true;
- }
- gis.script.featurecallbacksclick = function(feature,e){
- //alert(feature.attributes.onSelectOpenPopkey);
- if(locationLayer){
- locationLayer.removeAllFeatures();
- }
- var chicken=$('#chicken');
- chicken.remove();
-
- if(feature.attributes&&feature.attributes.onSelectOpenPopkey&&gis.script[feature.attributes.onSelectOpenPopkey]){
- //alert(feature.attributes.onSelectOpenPopkey);
- gis.script[feature.attributes.onSelectOpenPopkey](feature,e);
- }
- /*
- if(gis.script.gisidTo&&feature.attributes&&feature.attributes.gisidToKey){
- var sinfo=gis.script.gisidTo[feature.attributes.gisidToKey];
- var tempSize={width:320,height:155};
- if(sinfo&&sinfo.ID){
- //alert(sinfo.ID);
- gis.script.jsonAjax({url:contextPath+"/zygl/queryGK.html",async:true,data:{id:sinfo.ID}},
- function(data){
- //alert(JSON.stringify(data));
- if(data&&data.message){
- //alert(data.message);
- //alert(gis.script.popSize[feature.attributes.gisLayerinfoKey]);
- var popup = gis.anchored.popupHtml(feature.geometry.getBounds().getCenterLonLat(),gis.script.popSize[feature.attributes.gisLayerinfoKey]||tempSize,data.message);
- gis.anchored.addPopup(map,popup);
- }
- });
- }else{
- var popup = gis.anchored.popupHtml(feature.geometry.getBounds().getCenterLonLat(),tempSize,
- gis.anchored.tohtml(gis.anchored.nvlinfo({poptitle:" ",portName:feature.attributes.NAME||feature.attributes.name||""})));
- gis.anchored.addPopup(map,popup);
- }
- }
- */
- }
- gis.script.selectFeature = function(){
- /*
- var callbacks={
- click: function(currentFeature){
- //for(var cf in currentFeature){alert(cf);}
- alert(cf.data);
- }
- };
-
- var selectFeature = new SuperMap.Control.SelectFeature(vectorLayer,
- {
- callbacks: callbacks
- });
- */
- var selectFeature= new SuperMap.Control.SelectFeature(vectorLayer, {
- //是否重复触发地物选择事件,只在单选非toggle模式下有效。默认为false,表示处于 选中状态的地物不在触发选择事件。
- repeat:true,
- onSelect: function(feature) {
- /*
- selecedtBus = feature;
- popup = new SuperMap.Popup("chicken",
- selecedtBus.geometry.getBounds().getCenterLonLat(),
- new SuperMap.Size(300,42),
- "", null, true);
- selecedtBus.popup = popup;
- map.addPopup(popup);
- */
- //console.log('feature:',feature);
- //alert(feature.id);
-
- var popup = gis.anchored.popup(feature.geometry.getBounds().getCenterLonLat(),{});
- gis.anchored.addPopup(map,popup);
-
- }
-
- }
-
- );
- map.addControl(selectFeature);
- selectFeature.activate();
- /*
- var selectFeature= new SuperMap.Control.SelectFeature(vectorLayer, {
- onSelect: function(feature) {
-
- selecedtBus = feature;
- popup = new SuperMap.Popup("chicken",
- selecedtBus.geometry.getBounds().getCenterLonLat(),
- new SuperMap.Size(300,42),
- "dddddddddddd", null, true);
- selecedtBus.popup = popup;
- map.addPopup(popup);
-
- //var popup = gis.anchored.popup(feature.geometry.getBounds().getCenterLonLat(),{});
- //gis.anchored.addPopup(map,popup);
- },
- //onUnselect: function() {alert(2)}
- }
- );
- map.addControl(selectFeature);
- selectFeature.activate();
- */
-
- }
- /*
- * 给Marker添加点击事件,Marker包括港口
- */
- gis.script.addMarker = function(obj){
- var size;
- var offset;
- var mattr=gis.script.markerAttr[obj.type];
-
- if(!mattr){
- size= new SuperMap.Size(obj.w,obj.h);
- offset=new SuperMap.Pixel(-(size.w/2), -(size.h/2));
-
- gis.script.markerAttr[obj.type]={};
- gis.script.markerAttr[obj.type].size=size;
- gis.script.markerAttr[obj.type].offset=offset;
- }else{
- size=gis.script.markerAttr[obj.type].size;
- offset=gis.script.markerAttr[obj.type].offset
- }
- if(size&&offset){
- //alert(size);
- var icon = new SuperMap.Icon(obj.src, size, offset);
- var marker = new SuperMap.Marker(new SuperMap.LonLat(obj.lon,obj.lat),icon);
- //添加覆盖物到标记图层
- //markersLayer.addMarker(marker);
-
- gis.script.addMarkerLayer(obj,marker);
-
- //eval("(showMarkerInfo())")
- if(!gis.script.isBlank(obj.functionName)){
- marker.events.on({"click":function(e) {
- //alert(e);alert(event);
- //alert(this);alert(event);
- var eve=window.event||e;
- obj.events=this;
- //gis.script[obj.functionName](obj.feature,event);
- gis.script[obj.functionName](obj.feature,eve);
- }});
- }
- }
- }
- gis.script.addMarkerLayer = function(obj,marker){
- if(!gis.script.isBlank(obj.marktypename)){
- //alert(obj.marktypename);
- //gis.script.markersLayers
- /*
- if(!gis.script.markersLayers[obj.marktypename]){
- gis.script.markersLayers[obj.marktypename] = new SuperMap.Layer.Markers(obj.marktypename);
-
- if(obj.defshow&&obj.defshow=="true"){
- map.addLayer(gis.script.markersLayers[obj.marktypename]);
- }
-
- gis.script.markersLayersInfo[obj.marktypename]=obj;
- }
- */
- //alert(gis.script.markersLayers[obj.marktypename]);
- //alert(obj.marktypename);
- //console.log('obj.marktypename:',obj.marktypename);
- gis.script.markersLayers[obj.marktypename].addMarker(marker);
- }
- }
- gis.script.showMarkerInfo = function(obj){
- //alert(JSON.stringify(obj));
- //var popup = gis.anchored.popup(obj.events.getLonLat(),{});
-
- var popup = gis.anchored.popupHtml(obj.events.getLonLat(),{width:320,height:155},
- gis.anchored.tohtml(gis.anchored.portinfo({portName:obj.name,portNumber:2,anchorageNumber:2,chanceNumber:16})));
- gis.anchored.addPopup(map,popup);
- }
- gis.script.getLayersInfo = function(){
- var getLayersInfoService = new SuperMap.REST.GetLayersInfoService(gis.script.url);
- getLayersInfoService.events.on({ "processCompleted": gis.script.processCompletedlayers});
- getLayersInfoService.processAsync();
- }
- gis.script.processCompletedlayers = function(e){
-
- //gis.script.consolelog('e:',e);
- if(e&&e.result&&e.result.subLayers){
- var layers=e.result.subLayers.layers;
- for (var j = 0; j <layers.length; j++) {
- gis.script.subLayers.push(layers[j])
- //alert(layers[j]);
- //alert("<input type='checkbox' checked="+layers[j].visible+"/><span>"+layers[j].name+"</span>");
- $("<input type='checkbox' class='checkboxSel' value='"+layers[j].name+"' "+(layers[j].visible?"checked=true":"")+"/><span>"+layers[j].name+"</span>").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<annarray.length;ii++){
- var annobj=$("#"+annarray[ii]);
- if(annobj&&annobj.length){
- //annobj.css("top",bgrounddiv.offset().top+10);
- //annobj.css("right",32+52*(ii+1));
- //alert(annobj.css('display'));
- if(annobj.css('display')&&annobj.css('display')!='none'){
- annobj.css("right",32+72*(kk+1));
- kk=kk+1;
- }
- }
- }
-
- }
- gis.script.switchtckzTree = function(){
- var iframepage=document.getElementById("treetckzdiviframe");
- if(iframepage){
- if(!gis.script.tckztreeloadover){
- iframepage.src=contextPath+"/editgis/gisiframe.html?model=tckzTree";
- }else{
- if(iframepage.contentWindow){
- iframepage.contentWindow.gis.tree.inittreeCheck("tree");
- }
- }
- }
- }
- /*
- * 获取参数
- */
- gis.script.queryString = function (uri,val){
- //var uri = window.location.search;
- var re = new RegExp("" +val+ "=([^\&\?]*)", "ig");
- return ((uri.match(re))?(uri.match(re)[0].substr(val.length+1)):null);
- }
- $(document).ready(function() {
- if(document.getElementById("treetydiviframe")){
- //${contextPath}/zygl/gisiframe.html?model=commonTree
- document.getElementById("treetydiviframe").src=contextPath+"/zygl/treeiframe.html?model=commonTree";
- }
-
- gis.script.init();
-
-
- });
|