var gis = gis || {}; gis.edit = function() { }; var gkDasetName=null; var gqDasetName=null; var jyrDasetName=null; //var zyDasetNames ={"gk":gkDasetName,"gq":gqDasetName,"jyr":jyrDasetName}; var zyDasetNames = null; var zyarray = []; //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}; var moreSyncData; //var moreSyncEnd; //是否为岸线 var isLine = false; var moreSyncResult; var editmap={gq:"GK_BASIC_JSJY_GK_GQ",jyr:"GK_BASIC_JSJY_JYR",mt:"GK_BASIC_JSJY_JYR_MT", bw:"GK_BASIC_JSJY_JYR_BW",zyq:"GK_BASIC_JSJY_GK_ZYQ",md:"GK_BASIC_JSJY_GK_MD",ax:"GK_BASIC_JSJY_GK_AX"}; gis.edit.init = function() { zyarray = window.parent.getValues(); nowModifyFeature=null; arrAddFeature = []; editFeature = null; if(modifyvectorLayer){ modifyvectorLayer.removeAllFeatures(); } if(locationLayer){ locationLayer.removeAllFeatures(); } if(parameterMap){ //http://localhost:8080/znjg/editgis/gisiframe.html?model=gis&treeType=ty&editType=gq&id=32100113 //{model: "gis", treeType: "ty", editType: "gq", id: "32100113"} if(!gis.script.isBlank(parameterMap.editType)&&gis.script.isNum(parameterMap.id)){ var type=editmap[parameterMap.editType]; if(type==editmap["ax"]){ isLine = true; } if(!gis.script.isBlank(type)){ var tlayer=uflldLayerMap[type]; if(tlayer){ tlayer.removeAllFeatures(); } if(dataServices){ for(var n in dataServices){ var data=gisConfigBean.dataconfig[n]; if(data.gisLayerinfoKey&&data.gisLayerinfoKey=="GK_BASIC_JSJY_GK_GK"){ gkDasetName = data.datasetNames; }else if(data.gisLayerinfoKey&&data.gisLayerinfoKey=="GK_BASIC_JSJY_GK_GQ"){ gqDasetName = data.datasetNames; }else if(data.gisLayerinfoKey&&data.gisLayerinfoKey=="GK_BASIC_JSJY_JYR"){ jyrDasetName = data.datasetNames; } if(data.gisLayerinfoKey&&data.gisLayerinfoKey==type){ data=jQuery.extend(true, {}, data); 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.treelocationHighlight=model.treelocationHighlight||"false"; data.modelObj=model; data.url=data.url||defdataUrl; data.attributeFilter=data.gisLayerinfoAttrKey+"="+parameterMap.id; //console.log(data); gis.edit.loadServicetreelocation(data,parameterMap); } // break; } } } } } } }; /* * 根据空间数据信息定位 */ gis.edit.loadServicetreelocation = function(o,objdata){ var featureParam = new SuperMap.REST.FilterParameter({ //name: o.name, fields:o.fields, attributeFilter:o.attributeFilter }); var featuresBySQLParams=new SuperMap.REST.GetFeaturesBySQLParameters({ //toIndex:65536, toIndex:-1, queryParameter:featureParam, datasetNames:o.datasetNames }); var featuresBySQLService = new SuperMap.REST.GetFeaturesBySQLService(o.url, { eventListeners: { "processCompleted":function(e){ var result=e.result; //console.log('result>>',result); var features=result.features; if(features&&features.length){ isHaveGeo = true; var feature = features[0]; var centerLonLat = feature.geometry.getBounds().getCenterLonLat(); if(modifyvectorLayer){ try{ gis.script.clearAllDeactivate(); nowModifyFeature=feature.clone(); nowModifyFeature.attributes=nowModifyFeature.attributes||{} nowModifyFeature.attributes.gisEditLayerinfoKey=o.gisLayerinfoKey; nowModifyFeature.attributes.featureidval=feature.fid; nowModifyFeature.attributes.editinfoobj={lon:centerLonLat.lon,lat:centerLonLat.lat,zoom:o.zoom||6}; //console.log("1.nowModifyFeature.attributes.editinfoobj",nowModifyFeature.attributes.editinfoobj); modifyvectorLayer.removeAllFeatures(); modifyvectorLayer.addFeatures(nowModifyFeature); //console.log('o>>',o); }catch(e){ } } if(locationLayer){ var nowlocationFeature=feature.clone(); locationLayer.removeAllFeatures(); if(o.treelocationHighlight&&o.treelocationHighlight=="true"){ var fillColor="#a4a5a7";//"#ffff00" var fillOpacity=0.5; nowlocationFeature.style = { fill:true, stroke:true, strokeColor: "#ffff00", strokeWidth: 3, //pointerEvents: "visiblePainted", //fillColor: "#a4a5a7", strokeDashstyle:"solid", fillColor: fillColor, fillOpacity: fillOpacity }; //bwvectorLayer.addFeatures(feature); locationLayer.addFeatures(nowlocationFeature); try{ labelLayer.removeAllFeatures(); if(!o.gisLayerinfoKey||o.gisLayerinfoKey!="GK_BASIC_JSJY_JYR"){ if(o.labelfield&&feature.attributes[o.labelfield]){ 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){ } } } if(feature.attributes){ feature.attributes.onSelectOpenPopkey=o.onSelectOpenPopkey; feature.attributes.gisLayerinfoAttr=feature.attributes[o.gisLayerinfoAttrKey]; feature.attributes.infokey=o.gisLayerinfoKey+"_"+feature.attributes.gisLayerinfoAttr; feature.attributes.gisEditLayerinfoKey=o.gisLayerinfoKey; feature.attributes.featureidval=feature.fid; feature.attributes.labelfieldid=o.labelfield; if(o.processCompleted&&gis.script[o.processCompleted]){ gis.script[o.processCompleted](feature,o); } } var bounds = new SuperMap.Bounds(); bounds=feature.geometry.getBounds(); // map.setCenter(new SuperMap.LonLat(centerLonLat.lon, centerLonLat.lat),o.zoom||6); map.zoomToExtent(bounds,false); }else if(zyarray&&zyarray.length>0) { /**需要编辑的当前要素不存在的时候,逐级查询父极要素进行定位**/ var zyId=null; var attributeLocateFilter = null; var datasetNames = []; zyDasetNames ={"gk":gkDasetName,"gq":gqDasetName,"jyr":jyrDasetName}; //循环查找zyid for(var i=zyarray.length-1;i>=0;--i){ if(zyarray[i].type && zyarray[i].zyid!="" && zyarray[i].zyid!="null"){ zyId = zyarray[i].zyid; datasetNames.push(zyDasetNames[zyarray[i].type]); attributeLocateFilter = "id= "+ zyId; break; } } if(attributeLocateFilter &&datasetNames.length>0 ){ var featureLocateParam = new SuperMap.REST.FilterParameter({ attributeFilter: attributeLocateFilter }); var featuresLocateBySQLParams=new SuperMap.REST.GetFeaturesBySQLParameters({ toIndex:-1, queryParameter:featureLocateParam, datasetNames:datasetNames }); var featuresBySQLService = new SuperMap.REST.GetFeaturesBySQLService(o.url, { eventListeners: { "processCompleted":function(e){ var result=e.result; var featuresLocate = result.features; var featureLocate = featuresLocate[0]; if(featureLocate){ var bounds = new SuperMap.Bounds(); bounds=featureLocate.geometry.getBounds(); map.zoomToExtent(bounds,false); } }, "processFailed": gis.script.sqlProcessFailed } }); featuresBySQLService.processAsync(featuresLocateBySQLParams); } // alert('hh'); } }, "processFailed": gis.script.sqlProcessFailed } }); featuresBySQLService.processAsync(featuresBySQLParams); //featuresBySQLService.processAsync(featuresBySQLParams); } //定义编辑要素属性 //var arrAddFeature = []; var addFlag = 0; var multiPolygonArrayAdd=[]; var numId=0; //新增绘图事件响应 gis.edit.addFeatureCompleted = function(drawGeometryArgs){ $.confirm({ title : '确认框', content : '确认保存编辑区域吗', confirm : function() { if(drawGeometryArgs){ //gis.edit.addFeatureCompletedService(drawGeometryArgs); // nowModifyFeature = drawGeometryArgs.feature; // modifyvectorLayer.addFeatures( drawGeometryArgs.feature); // locationLayer.addFeatures( drawGeometryArgs.feature); drawPolygon.deactivate(); drawGeometryArgs.feature.geometry.xzId = numId+1; addFlag = 1; //arrAddFeature=drawGeometryArgs; // arrAddFeature.push(drawGeometryArgs); multiPolygonArrayAdd.push(drawGeometryArgs.feature.geometry); console.log("multiPolygonArray",multiPolygonArrayAdd); // gis.edit.submitToService(); } }, cancel: function(){ // modifyvectorLayer.removeAllFeatures(); modifyvectorLayer.removeFeatures(drawGeometryArgs.feature); drawPolygon.deactivate(); } }); } var addLineFeature; //新增绘图事件响应--画线 gis.edit.addFeatureLineCompleted = function(drawGeometryArgs){ $.confirm({ title : '确认框', content : '确认保存编辑区域吗', confirm : function() { if(drawGeometryArgs){ drawPolyline.deactivate(); //alert("已保存"); addLineFeature = drawGeometryArgs; } }, cancel: function(){ modifyvectorLayer.removeFeatures(drawGeometryArgs.feature); drawPolyline.deactivate(); } }); } //批量提交增删改 gis.edit.submitToService=function(){ // alert(arrAddFeature.length); //删除提交 if(delFeature){ gis.edit.delFeatureCompletedService(delFeature); } //新增提交 if(multiPolygonArrayAdd&&multiPolygonArrayAdd.length>0){ gis.edit.addFeatureCompletedService(multiPolygonArrayAdd); } //新增提交--线 if(addLineFeature){ gis.edit.addFeatureCompletedService(addLineFeature); } //修改提交 if(editFeature && addFlag == 0 ){ gis.script.editgisFeatureService(editFeature); } // } //修改提交 // if(arrEditFeature && arrEditFeature.length>0 && addFlag == 0){ // for(var i=0;i>',result); var features=result.features; var sourcesfeature; if(features&&features.length){ sourcesfeature = features[0]; } //gis.edit.syncDataLayerTargetsService(data,sourcesfeature,objdata); gis.edit.addLayerFeatureCompletedService(drawGeometryArgs,data,sourcesfeature,objdata); }, "processFailed": gis.script.sqlProcessFailed } }); featuresBySQLService.processAsync(featuresBySQLParams); } gis.edit.addLayerFeatureCompletedService = function(drawGeometryArgs,data,sourcesfeature,objdata){ var o=jQuery.extend(true, {}, data); var editFeatureParameter; if(sourcesfeature){ // var geometry = drawGeometryArgs.feature.geometry; // var feature = new SuperMap.Feature.Vector(); // feature.geometry = drawGeometryArgs.feature.geometry; var featureidval = sourcesfeature.fid; if(editFeature && editFeature.geometry){ sourcesfeature = editFeature; } //在原有基础上新增地块:将地块数组存入多多边形对象 var multiPolygon = new SuperMap.Geometry.MultiPolygon(drawGeometryArgs); console.log("multiPolygon",multiPolygon); sourcesfeature.attributes.gisEditLayerinfoKey=o.gisLayerinfoKey; sourcesfeature.attributes.featureidval=featureidval; //console.log('sourcesfeature>>',sourcesfeature);//return; gis.script.editgisFeatureService(sourcesfeature,multiPolygon); // gis.script.editgisFeatureService(sourcesfeature,feature); return; }else{ // 完全新增 : var newAddFeature =null; if(isLine){//增加线 newAddFeature = drawGeometryArgs.feature.geometry; }else{//将地块数组存入多多边形对象 var multiPolygon = new SuperMap.Geometry.MultiPolygon(drawGeometryArgs); console.log("multiPolygon",multiPolygon); newAddFeature = multiPolygon; } var addfeatures = { fieldNames:[o.gisLayerinfoAttrKey], fieldValues:[parameterMap.id], // geometry:drawGeometryArgs.feature.geometry geometry:newAddFeature }; //console.log('addfeatures>>',addfeatures); editFeatureParameter = new SuperMap.REST.EditFeaturesParameters({ features: [addfeatures], editType: SuperMap.REST.EditType.ADD, returnContent:false }); } if(editFeatureParameter &&o.url&&o.datasetNames&&o.datasetNames.length==1){ var dnames=o.datasetNames[0].split(":"); if(dnames&&dnames.length==2){ //console.log("dnames",dnames); var url=o.url+"/datasources/"+dnames[0]+"/datasets/"+dnames[1]; var editFeatureService = new SuperMap.REST.EditFeaturesService(url, { eventListeners: { "processCompleted": function(editFeaturesEventArgs) { gis.script.updateFeaturesProcessCompleted(editFeaturesEventArgs); }, "processFailed": gis.script.sqlProcessFailed } }); //console.log(editFeatureParameter); editFeatureService.processAsync(editFeatureParameter); } } } gis.edit.addFeatureCompletedService2 = function(drawGeometryArgs){ gis.edit.progressdiv('show'); drawPolygon.deactivate(); if(!gis.script.isBlank(parameterMap.editType)&&gis.script.isNum(parameterMap.id)){ //console.log(parameterMap); if(dataServices){ gis.script.consolelog('dataServices',dataServices); for(var n in dataServices){ var data=gisConfigBean.dataconfig[n]; var type=editmap[parameterMap.editType]; if(data&&type==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); var geometry = drawGeometryArgs.feature.geometry; var feature = new SuperMap.Feature.Vector(); feature.geometry = drawGeometryArgs.feature.geometry; //feature.style = style; modifyvectorLayer.addFeatures(feature); if(nowModifyFeature){ gis.script.editgisFeatureService(nowModifyFeature,feature); return; } if(data.gisLayerinfoAttrKey){ var features = { fieldNames:[data.gisLayerinfoAttrKey], fieldValues:[parameterMap.id], geometry:geometry }; var editFeatureParameter = new SuperMap.REST.EditFeaturesParameters({ features: [features], editType: SuperMap.REST.EditType.ADD, returnContent:false }); 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]; var editFeatureService = new SuperMap.REST.EditFeaturesService(url, { eventListeners: { "processCompleted": function(editFeaturesEventArgs) { gis.script.updateFeaturesProcessCompleted(editFeaturesEventArgs,feature); }, "processFailed": gis.script.sqlProcessFailed } }); editFeatureService.processAsync(editFeatureParameter); } } } break; } } } } } var delFeature; gis.edit.delFeatureCompleted = function(delFeature){ $.confirm({ title : '确认框', content : '确认删除区域吗', confirm : function() { if(event){ nowModifyFeature = null; if(locationLayer){ locationLayer.removeAllFeatures(); } if(modifyvectorLayer){ modifyvectorLayer.removeAllFeatures(); } if(multiPolygonArrayAdd&&multiPolygonArrayAdd.length>0){ multiPolygonArrayAdd=[]; } if(editFeature ){ editFeature=null; } if(addLineFeature){ addLineFeature= null; } //modifyvectorLayer.refresh(); // gis.edit.delFeatureCompletedService(feature); // delFeature = feature; // gis.edit.submitToService(); } }, cancel: function(){ //modifyvectorLayer.removeAllFeatures(); } }); } gis.edit.delFeatureCompletedService = function(feature){ if(feature){ //console.log(feature); if(feature.attributes&&!gis.script.isBlank(feature.attributes.featureidval)){ if(dataServices){ gis.script.consolelog('dataServices',dataServices); for(var n in dataServices){ var data=gisConfigBean.dataconfig[n]; var type=editmap[parameterMap.editType]; if(data&&type==data.gisLayerinfoKey){ data=jQuery.extend(true, {}, data); data.datasetNames=data.datasetNames.split(","); data.fields=data.fields.split(","); data.url=data.url||defdataUrl; var editFeatureParameter = new SuperMap.REST.EditFeaturesParameters({ IDs: [feature.attributes.featureidval], editType: SuperMap.REST.EditType.DELETE }); 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]; var editFeatureService = new SuperMap.REST.EditFeaturesService(url, { eventListeners: { "processCompleted": function(editFeaturesEventArgs) { gis.script.updateFeaturesProcessCompleted(editFeaturesEventArgs,null); }, "processFailed": gis.script.sqlProcessFailed } }); //console.log(editFeatureParameter); editFeatureService.processAsync(editFeatureParameter); } } break; } } } } } } gis.edit.syncDataLayerMorefromid = function(dataObj){ if(dataObj&&typeof(dataObj)=='object'){ gis.script.jsonAjax({url:contextPath+"/editgis/idtozyid.html",contentType:'application/json;charset=utf-8',async:true,data:JSON.stringify({data:dataObj,status:'2'})}, function(data){ console.log(data); console.log({gq:[4,5,6,7,8]}); }); } } gis.edit.syncDataLayerMore = function(dataObj){ moreSyncData=dataObj; moreSyncResult={moreSyncEnd:false}; gis.edit.syncDataLayerMoreFun(); } gis.edit.syncDataLayerMoreFun = function(){ if(moreSyncData){ //console.log(moreSyncData); if(dataServices){ //console.log(dataServices); for(var n in dataServices){ var data=gisConfigBean.dataconfig[n]; for(var k in moreSyncData){ if(data.gisLayerinfoKey&&data.gisLayerinfoKey==editmap[k]){ //console.log(data); var args=moreSyncData[k]; if(args&&args.length){ //console.log("1.",JSON.stringify(moreSyncData)); var dataTemp=jQuery.extend(true, {}, data); var argsLength=args.length; var zyID=args.shift(0,1); if(dataTemp.Model&&dataTemp.Model[gis.script.modelid]&&gis.script.isNum(zyID)){ var model=dataTemp.Model[gis.script.modelid]; dataTemp.datasetNames=dataTemp.datasetNames.split(","); dataTemp.fields=dataTemp.fields.split(","); dataTemp.cachedata=model.cachedata||dataTemp.cachedata; dataTemp.zoom=model.zoom||dataTemp.zoom; dataTemp.processCompleted=model.processCompleted; dataTemp.onSelectOpenPopkey=model.onSelectOpenPopkey; dataTemp.treelocationHighlight=model.treelocationHighlight||"false"; dataTemp.modelObj=model; dataTemp.url=dataTemp.url||defdataUrl; dataTemp.attributeFilter=dataTemp.gisLayerinfoAttrKey+"="+zyID; dataTemp.moreDataLayerSync=true; dataTemp.parameterMapSync={id:zyID,editType:k,moreDataLayerSyncNoAsync:true}; //console.log("2.",JSON.stringify(moreSyncData)); if(argsLength>args.length){ //console.log("-->",dataTemp); gis.edit.syncDataLayerSourcesService(dataTemp,parameterMap); return; } } } } } } } } } gis.edit.syncDataLayerMoreAsync = function(dataObj){ if(dataObj){ //console.log(dataObj); if(dataServices){ //console.log(dataServices); for(var n in dataServices){ var data=gisConfigBean.dataconfig[n]; for(var k in dataObj){ if(data.gisLayerinfoKey&&data.gisLayerinfoKey==editmap[k]){ //console.log(data); var args=dataObj[k]; if(args&&args.length){ //console.log(args); for(var j=0;j>>."+args[j],data); var dataTemp=jQuery.extend(true, {}, data); if(dataTemp.Model&&dataTemp.Model[gis.script.modelid]&&gis.script.isNum(args[j])){ var model=dataTemp.Model[gis.script.modelid]; dataTemp.datasetNames=dataTemp.datasetNames.split(","); dataTemp.fields=dataTemp.fields.split(","); dataTemp.cachedata=model.cachedata||dataTemp.cachedata; dataTemp.zoom=model.zoom||dataTemp.zoom; dataTemp.processCompleted=model.processCompleted; dataTemp.onSelectOpenPopkey=model.onSelectOpenPopkey; dataTemp.treelocationHighlight=model.treelocationHighlight||"false"; dataTemp.modelObj=model; dataTemp.url=dataTemp.url||defdataUrl; dataTemp.attributeFilter=dataTemp.gisLayerinfoAttrKey+"="+args[j]; dataTemp.moreDataLayerSync=true; dataTemp.parameterMapSync={id:args[j],editType:k}; //console.log("-->",dataTemp); gis.edit.syncDataLayerSourcesService(dataTemp,parameterMap); } } } } } } } } } gis.edit.syncDataLayer = function(){ if(!gis.script.isBlank(parameterMap.editType)&&gis.script.isNum(parameterMap.id)){ var type=editmap[parameterMap.editType]; if(!gis.script.isBlank(type)){ if(dataServices){ for(var n in dataServices){ var data=gisConfigBean.dataconfig[n]; if(data.gisLayerinfoKey&&data.gisLayerinfoKey==type){ data=jQuery.extend(true, {}, data); 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.treelocationHighlight=model.treelocationHighlight||"false"; data.modelObj=model; data.url=data.url||defdataUrl; data.attributeFilter=data.gisLayerinfoAttrKey+"="+parameterMap.id; gis.edit.syncDataLayerSourcesService(data,parameterMap); } break; } } } } } } gis.edit.syncDataLayerTargetsService = function(data,sourcesfeature,objdata){ if(!data||!data.syncDatasetNames){ return; } var o=jQuery.extend(true, {}, data); //syncdataUrl o.url=syncdataUrl; o.datasetNames=data.syncDatasetNames.split(","); //alert(o.url); var featureParam = new SuperMap.REST.FilterParameter({ //name: o.name, fields:o.fields, attributeFilter:o.attributeFilter }); var featuresBySQLParams=new SuperMap.REST.GetFeaturesBySQLParameters({ //toIndex:65536, toIndex:-1, queryParameter:featureParam, datasetNames:o.datasetNames }); var featuresBySQLService = new SuperMap.REST.GetFeaturesBySQLService(o.url, { eventListeners: { "processCompleted":function(e){ gis.edit.progressdiv('show'); var editFeatureParameter; var result=e.result; //console.log('result>>',result); var features=result.features; var targetsfeature; if(features&&features.length){ targetsfeature = features[0]; } //console.log('sourcesfeature>>',sourcesfeature); //console.log('targetsfeature>>',targetsfeature); if(!sourcesfeature&&!targetsfeature){ //目标源和数据源多不存在地物,无需操作,提示同步完成 //gis.script.toastmessage({text:'同步完成'}); //gis.edit.progressdiv('none'); if(o&&o.moreDataLayerSync){ //editFeaturesEventArgs.result.resourceInfo.succeed gis.edit.syncFeaturesProcessCompletedMore({result:{resourceInfo:{succeed:true}}},o); }else{ gis.script.toastmessage({text:'同步完成'}); gis.edit.progressdiv('none'); } return; }else if(!sourcesfeature){ //目标源存在地物,可是数据源不存在时,进行删除操作 //console.log('1.','目标源存在地物,可是数据源不存在时,进行删除操作'); if(!gis.script.isBlank(targetsfeature.fid)){ editFeatureParameter = new SuperMap.REST.EditFeaturesParameters({ IDs: [targetsfeature.fid], editType: SuperMap.REST.EditType.DELETE }); //console.log('editFeatureParameter>>',editFeatureParameter); } }else if(!targetsfeature){ //目标源存在地物,可是数据源存在时,进行新增操作 //console.log('2.','目标源存在地物,可是数据源存在时,进行新增操作'); if(sourcesfeature&&sourcesfeature.geometry){ var addfeatures = { fieldNames:[data.gisLayerinfoAttrKey], fieldValues:[parameterMap.id], geometry:sourcesfeature.geometry }; //console.log('addfeatures>>',addfeatures); editFeatureParameter = new SuperMap.REST.EditFeaturesParameters({ features: [addfeatures], editType: SuperMap.REST.EditType.ADD, returnContent:false }); } }else{ //目标源和数据源同时存在时,进行更新操作 //console.log('3.','目标源和数据源同时存在时,进行更新操作'); if(o.fields&&o.fields.length){ var attributes = feature.attributes; var attrNames = data.fields; var attrValues = []; for(var i=0;i>',updatefeatures); } } } if(editFeatureParameter &&o.url&&o.datasetNames&&o.datasetNames.length==1){ var dnames=o.datasetNames[0].split(":"); if(dnames&&dnames.length==2){ //console.log("dnames",dnames); var url=o.url+"/datasources/"+dnames[0]+"/datasets/"+dnames[1]; var editFeatureService = new SuperMap.REST.EditFeaturesService(url, { eventListeners: { "processCompleted": function(editFeaturesEventArgs) { //console.log("oooo1:",o); //console.log("oooo2:",objdata); if(o&&o.moreDataLayerSync){ gis.edit.syncFeaturesProcessCompletedMore(editFeaturesEventArgs,o); }else{ gis.edit.syncFeaturesProcessCompleted(editFeaturesEventArgs); } }, "processFailed": gis.script.sqlProcessFailed } }); //console.log(">>>>",editFeatureParameter); editFeatureService.processAsync(editFeatureParameter); } }else{ gis.edit.progressdiv('none'); } }, "processFailed": gis.script.sqlProcessFailed } }); featuresBySQLService.processAsync(featuresBySQLParams); } gis.edit.syncDataLayerSourcesService = function(data,objdata){ var o=jQuery.extend(true, {}, data); //测试时开放 //o.attributeFilter=o.gisLayerinfoAttrKey+"=92100111"; var featureParam = new SuperMap.REST.FilterParameter({ //name: o.name, fields:o.fields, attributeFilter:o.attributeFilter }); var featuresBySQLParams=new SuperMap.REST.GetFeaturesBySQLParameters({ //toIndex:65536, toIndex:-1, queryParameter:featureParam, datasetNames:o.datasetNames }); var featuresBySQLService = new SuperMap.REST.GetFeaturesBySQLService(o.url, { eventListeners: { "processCompleted":function(e){ var result=e.result; //console.log('result>>',result); var features=result.features; var sourcesfeature; if(features&&features.length){ sourcesfeature = features[0]; } gis.edit.syncDataLayerTargetsService(data,sourcesfeature,objdata); }, "processFailed": gis.script.sqlProcessFailed } }); featuresBySQLService.processAsync(featuresBySQLParams); } gis.edit.syncFeaturesProcessCompleted = function(editFeaturesEventArgs){ gis.edit.progressdiv('none'); if(editFeaturesEventArgs&&editFeaturesEventArgs.result.resourceInfo.succeed) { //alert("更新地物成功"); gis.script.toastmessage({text:'同步地物成功。',type:'success'}); }else{ gis.script.toastmessage({text:'同步地物失败。',type:'warning'}); } gis.edit.syncgisStatus({syncsucceed:editFeaturesEventArgs.result.resourceInfo.succeed}); } gis.edit.syncFeaturesProcessCompletedMore = function(editFeaturesEventArgs,infoObj){ gis.edit.progressdiv('none'); //console.log(infoObj); if(infoObj&&infoObj.parameterMapSync){ infoObj.parameterMapSync.syncsucceed=editFeaturesEventArgs.result.resourceInfo.succeed; gis.edit.syncgisStatusMore(infoObj.parameterMapSync); } } gis.edit.syncgisStatusMore=function(obj){ if(obj){ //console.log(obj);return; if(!gis.script.isBlank(obj.editType)&&gis.script.isNum(obj.id)){ var type=editmap[obj.editType]; if(!gis.script.isBlank(type)){ obj.tableName=type; obj.zyid=obj.id+""; //var objdata=JSON.stringify(jQuery.extend(true, obj, obj)); var objdata=JSON.stringify(obj); /* gis.script.jsonAjax({url:contextPath+"/editgis/syncgisStatus.html",async:true,data:obj}, function(data){ }); */ //objdata=JSON.stringify({id:1}); if(!moreSyncResult.resule){ moreSyncResult.resule={}; } //var resObj = moreSyncResult.resule[obj.editType+"_"+obj.id]; moreSyncResult.resule[obj.editType+"_"+obj.id]=obj; gis.script.jsonAjax({url:contextPath+"/editgis/syncgisStatus.html",contentType:'application/json;charset=utf-8',async:true,data:objdata}, function(data){ console.log("syn:",objdata); console.log("synResult:",data); if(obj.moreDataLayerSyncNoAsync){ var isend=true; for(var k in moreSyncData){ //console.log("::",moreSyncData[k]); isend=isend&&(gis.script.isNotBlank(moreSyncData[k].length)?(moreSyncData[k].length>0?false:true):true); } //moreSyncEnd=isend; moreSyncResult.moreSyncEnd=isend; moreSyncResult.resule[obj.editType+"_"+obj.id]=data; //console.log("isend:",isend); gis.edit.syncDataLayerMoreFun(); } }); } } } } gis.edit.syncgisStatus=function(obj){ if(obj){ if(!gis.script.isBlank(parameterMap.editType)&&gis.script.isNum(parameterMap.id)){ var type=editmap[parameterMap.editType]; if(!gis.script.isBlank(type)){ obj.tableName=type; obj.zyid=parameterMap.id; //var objdata=JSON.stringify(jQuery.extend(true, parameterMap, obj)); var objdata=JSON.stringify(obj); /* gis.script.jsonAjax({url:contextPath+"/editgis/syncgisStatus.html",async:true,data:obj}, function(data){ }); */ //objdata=JSON.stringify({id:1}); gis.script.jsonAjax({url:contextPath+"/editgis/syncgisStatus.html",contentType:'application/json;charset=utf-8',async:true,data:objdata}, function(data){ }); } } } } gis.edit.progressdiv = function(v){ var progressdiv=document.getElementById("progressdiv"); if(progressdiv&&v){ if(v=='show'){ progressdiv.style.display=""; }else{ progressdiv.style.display="none"; } } } $(document).ready(function() { });