/// <summary> /// 数据源图层名 /// </summary> public void OnExecute() { switch (ActionArgument) { case ActionTypes.Adjust: { new ArcEngineLicense(); SpatialAdjust.Adjust(); break; } case ActionTypes.ImportData: { if (new string[] { Datasource, LayerName, OutDatasource, OutLayerName, ControlPoints }.Any(s => s == null)) { Console.WriteLine("参数没有写全"); break; //throw new Exception("参数没有写全"); } new ArcEngineLicense(); SpatialAdjust sa = null; try { sa = new SpatialAdjust(controlPointsFile: ControlPoints, controlPointsInputType: ControlPointsInputType, spatialAdjustMethodType: SpatialAdjustMethodType); } catch (Exception ex) { sa = null; } var inFc = DataActions.GetFeatureClass(Datasource, DataSourceType, LayerName); ESRI.ArcGIS.Geodatabase.IFeatureClass outFc; try { outFc = DataActions.GetFeatureClass(OutDatasource, OutDatasourceType, OutLayerName); } catch (Exception) { outFc = DataActions.CreateFeatureClass(DataActions.GetWorkspace(OutDatasource, OutDatasourceType), "", OutLayerName, inFc); } //Console.WriteLine($"将使用{ SpatialAdjust.transformMethodMap[sa.SpatialAdjustMethodType].Name} 偏移"); DataActions.CoverFeatureClassWithFeatureClass(inFc, outFc, sa); break; } case ActionTypes.LogLayer: { new ArcEngineLicense(); LogActions.LogFeatureClass(Datasource, DataSourceType, LayerName); } break; case ActionTypes.BatchImport: { new ArcEngineLicense(); var layerNames = LayerName.Split(','); List <string> finalNameStringList = new List <string>(); var workspace = DataActions.GetWorkspace(Datasource, DataSourceType); var featureWorkspace = (IFeatureWorkspace)workspace; layerNames.ToList().ForEach((name) => { try { featureWorkspace.OpenFeatureClass(name); finalNameStringList.Add(name); } catch (Exception) { try { var dataset = featureWorkspace.OpenFeatureDataset(name); var subs = dataset.FeatureDatasetsInFeatureDataset(); subs.ToList().ForEach(sub => finalNameStringList.Add(sub.Name)); } catch (Exception) { } } }); finalNameStringList.ForEach((finalName) => { new CommandLineController() { ActionArgument = ActionTypes.ImportData, Datasource = Datasource, DataSourceType = DataSourceType, LayerName = finalName, OutDatasource = OutDatasource, OutDatasourceType = OutDatasourceType, OutLayerName = $"{finalName.Split('.').Last()}_adjusted", ControlPoints = ControlPoints, ControlPointsInputType = ControlPointsInputType, SpatialAdjustMethodType = SpatialAdjustMethodType }.OnExecute(); }); } break; case ActionTypes.GenerateBatch: { new ArcEngineLicense(); var batchFileName = String.Empty; //var dtn = DateTime.Now.ToFullTimeSecondString(); if (String.IsNullOrEmpty(BatchFileName)) { var dtn = DateTime.Now; var s = dtn.ToBinary(); batchFileName = $"bat{s}.bat"; } else { batchFileName = BatchFileName; } var layerNames = LayerName.Split(','); List <string> finalNameStringList = new List <string>(); var workspace = DataActions.GetWorkspace(Datasource, DataSourceType); var featureWorkspace = (IFeatureWorkspace)workspace; layerNames.ToList().ForEach((name) => { try { featureWorkspace.OpenFeatureClass(name); finalNameStringList.Add(name); } catch (Exception) { try { var dataset = featureWorkspace.OpenFeatureDataset(name); var subs = dataset.FeatureDatasetsInFeatureDataset(); subs.ToList().ForEach(sub => finalNameStringList.Add(sub.Name)); } catch (Exception) { } } }); using (StreamWriter sw = new StreamWriter(batchFileName, true, Encoding.Default)) //using (StreamWriter sw = File.AppendText(batchFileName)) { var text = String.Empty; finalNameStringList.ToList().ForEach((layerName) => { //System.Reflection.Assembly.GetExecutingAssembly().FullName; //sw.WriteLine( $"AoCli.exe " ) sw.WriteLine($@"AoCli.exe BatchImport -ln {layerName} -ds {Datasource} -dst {DataSourceType} -ods {OutDatasource} -odst {OutDatasourceType} -oln {OutLayerName} -cp {ControlPoints} -samt {SpatialAdjustMethodType}" + " \n"); //text += $@"AoCli.exe BatchImport -ln {layerName} -ds {Datasource} -dst {DataSourceType} -ods {OutDatasource} -oln {OutLayerName} -cp {ControlPoints} -samt {SpatialAdjustMethodType}"; //text += "\n"; }); sw.Write(text); Console.WriteLine("Batch file generated"); } } break; case ActionTypes.GPTest: { new Test.MyTestClass().ShapeInWhereTest3(); } break; default: break; } }
private void ForSmID() { string SmID, LayerName; //检查 and 数据赋值 CheckRequery.checkNotNull("LayerName", "设施不能为空!", out LayerName); CheckRequery.checkNotNull("SmID", "SmID不能为空!", out SmID); LayerName = LayerName.Split('@')[0]; string SQL = ""; switch (LayerName) { case "普通给水管线": SQL = @"Select SmID, 管线编号, 道路名称, 管径, 管长, 管道材质, 接口方式, 起点点号, 终止点号, 敷设年代, 竣工日期, 施工单位, 施工单位, 起点埋深, 终点埋深, 平均埋深, 起点高程, 终点高程 From " + LayerName + " where SmID=" + SmID; break; case "阀门": SQL = @"Select SmID 物探点号 阀门编号 口径, 井盖形状, 井盖尺寸, 井盖材质, 井壁结构, 施工单位联系方式, 施工单位, 埋深, 高程, 开关状态, 开关类型, 材质, 埋设方式, 所在道路, 道路名称, 安装日期, 竣工日期 From " + LayerName + " where SmID=" + SmID; break; case "消防栓": SQL = @"Select SmID, 管径, 管件口径, 井盖形状, 井盖尺寸, 井盖材质, 井壁结构, 施工单位联系方式, 施工单位, 安装日期, 竣工日期 From " + LayerName + " where SmID=" + SmID; break; case "阀门井": SQL = @"Select SmID, 编号, 井盖形状, 井盖尺寸, 井盖材质, 井壁结构, 施工单位, 施工单位联系方式 From " + LayerName + " where SmID=" + SmID; break; case "排气阀": SQL = @"Select SmID, 编号, 施工单位, 道路名称 From " + LayerName + " where SmID=" + SmID; break; case "直通井": SQL = @"Select SmID, 编号, 井盖形状, 井盖尺寸, 井盖材质, 井壁结构, 施工单位, 施工单位联系方式 From " + LayerName + " where SmID=" + SmID; break; case "四通井": SQL = @"Select SmID, 编号, 井盖形状, 井盖尺寸, 井盖材质, 井壁结构, 施工单位, 施工单位联系方式 From " + LayerName + " where SmID=" + SmID; break; default: SQL = @"Select SmID, 编号, 井盖形状, 井盖尺寸, 井盖材质, 井壁结构, 施工单位, 施工单位联系方式 From " + LayerName + " where SmID=" + SmID; break; } DataTable DT; string ErrInfo = ""; bool IsOk = APP.SQLServer_BaseGisDB_Helper.GetDataTable(SQL, out DT, out ErrInfo); //执行完成返回 if (IsOk) { Context.Response.Write(WebExport.ExportSuccess("查询成功!")); return; } else { Context.Response.Write(WebExport.ExportSuccess("查询失败!")); return; } }