From 593ea5d267cdbf109ca98dd70a8e870eaa60603a Mon Sep 17 00:00:00 2001 From: WGJ Date: Tue, 27 Aug 2024 10:41:19 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Apps/Resource/ZLDatabaseTool.tbx | Bin 6341120 -> 6366208 bytes IDEForNDBG/GPHelper/ExeGPForProces.cs | 2 +- IDEForNDBG/Helper/DLTB_IDGForThreadHelper.cs | 2 +- IDEForNDBG/Helper/ZLHZHelper.cs | 2 +- KGIS_DLTB/Helper/DLTB_IDGHelper.cs | 14 +- KGIS_DLTB/Helper/ZLHZHelper.cs | 2 +- KGIS_DLTB/Program.cs | 2 +- UserControl1.xaml | 21 +- UserControl1.xaml.cs | 202 ++++++++++++------- 9 files changed, 164 insertions(+), 83 deletions(-) diff --git a/Apps/Resource/ZLDatabaseTool.tbx b/Apps/Resource/ZLDatabaseTool.tbx index c87cb9ce520a681871fe3cc206a420ae33586f97..36442b8cfe1bd01d0bf2d53fee568f636b966587 100644 GIT binary patch delta 24647 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 delta 17891 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 b$jIk?R4nVm$0a4^W9|jmh@bQ;IP?DiwsI0p diff --git a/IDEForNDBG/GPHelper/ExeGPForProces.cs b/IDEForNDBG/GPHelper/ExeGPForProces.cs index 148fdb8..dc9cb50 100644 --- a/IDEForNDBG/GPHelper/ExeGPForProces.cs +++ b/IDEForNDBG/GPHelper/ExeGPForProces.cs @@ -122,7 +122,7 @@ namespace IDGForNDBG { //else //{ - KGIS.Framework.AE.IWorkspaceAPI wsAPI = new KGIS.Framework.AE.WorkspaceAPI(dbPath, KGIS.Framework.AE.Enum.WorkspaceTypeEnum.GDBFile); + KGIS.Framework.AE.IWorkspaceAPI wsAPI = new KGIS.Framework.AE.WorkspaceAPI(dbPath, KGIS.Framework.AE.Enum.WorkspaceTypeEnum.GDBFile, true); KGIS.Framework.AE.IFeatureClassAPI fcAPI = wsAPI.OpenFeatureClass(fcName); result.FeatureClass = fcAPI.FeatureClass; //} diff --git a/IDEForNDBG/Helper/DLTB_IDGForThreadHelper.cs b/IDEForNDBG/Helper/DLTB_IDGForThreadHelper.cs index cdefe90..f0ef3c9 100644 --- a/IDEForNDBG/Helper/DLTB_IDGForThreadHelper.cs +++ b/IDEForNDBG/Helper/DLTB_IDGForThreadHelper.cs @@ -1450,7 +1450,7 @@ namespace IDGForNDBG return result; } result.NmWsAPI = new WorkspaceAPI(PathNMDB, WorkspaceTypeEnum.GDBFile); - IWorkspaceAPI JCAPI = new WorkspaceAPI(pPrjarm.JCKPath, KGIS.Framework.AE.Enum.WorkspaceTypeEnum.GDBFile); + IWorkspaceAPI JCAPI = new WorkspaceAPI(pPrjarm.JCKPath, KGIS.Framework.AE.Enum.WorkspaceTypeEnum.GDBFile, true); result.JcTbLayer = new FeatureLayer() { FeatureClass = JCAPI.OpenFeatureClass("DLTB").FeatureClass, Name = "基础地类图斑" }; if (result.JcTbLayer == null) { diff --git a/IDEForNDBG/Helper/ZLHZHelper.cs b/IDEForNDBG/Helper/ZLHZHelper.cs index 92b344c..e32fd0b 100644 --- a/IDEForNDBG/Helper/ZLHZHelper.cs +++ b/IDEForNDBG/Helper/ZLHZHelper.cs @@ -263,7 +263,7 @@ namespace IDGForNDBG //LayerCfg _JcCzcLayerInfo = NcList.FirstOrDefault(f => f.LayerName == "城镇村等用地"); //_jcCzcLayer = OpenLayer(_JcCzcLayerInfo); - IWorkspaceAPI JCAPI = new WorkspaceAPI(parm.PrjInfo.JCKPath, KGIS.Framework.AE.Enum.WorkspaceTypeEnum.GDBFile); + IWorkspaceAPI JCAPI = new WorkspaceAPI(parm.PrjInfo.JCKPath, KGIS.Framework.AE.Enum.WorkspaceTypeEnum.GDBFile, true); _jcCzcLayer = new FeatureLayer() { FeatureClass = JCAPI.OpenFeatureClass("CZCDYD").FeatureClass, Name = "城镇村等用地" }; //if (_JcCzcLayerInfo == null) // throw new Exception("Err:获取年初城镇村等用地数据失败!"); diff --git a/KGIS_DLTB/Helper/DLTB_IDGHelper.cs b/KGIS_DLTB/Helper/DLTB_IDGHelper.cs index fe98a8c..de7daa9 100644 --- a/KGIS_DLTB/Helper/DLTB_IDGHelper.cs +++ b/KGIS_DLTB/Helper/DLTB_IDGHelper.cs @@ -653,7 +653,7 @@ update dltbgxgc set tbbgmj=tbbgmj-0.01 where objectid in (select objectid from { Console.WriteLine("打开年末数据库失败!"); } - IWorkspaceAPI JCAPI = new WorkspaceAPI(parm.PrjInfo.JCKPath, KGIS.Framework.AE.Enum.WorkspaceTypeEnum.GDBFile); + IWorkspaceAPI JCAPI = new WorkspaceAPI(parm.PrjInfo.JCKPath, KGIS.Framework.AE.Enum.WorkspaceTypeEnum.GDBFile, true); _jcTbLayer = new FeatureLayer() { FeatureClass = JCAPI.OpenFeatureClass("DLTB").FeatureClass, Name = "基础地类图斑" }; if (_jcTbLayer == null) { @@ -786,7 +786,7 @@ update dltbgxgc set tbbgmj=tbbgmj-0.01 where objectid in (select objectid from mGPParm.Add(TempDbPath); mGPParm.Add("DLTBBG"); CustomGPHelper.DLTBBGDissolve_Tool(mGPParm); - wsAPI = new WorkspaceAPI(TempDbPath, WorkspaceTypeEnum.GDBFile); + wsAPI = new WorkspaceAPI(TempDbPath, WorkspaceTypeEnum.GDBFile, true); fcAPI = wsAPI.OpenFeatureClass("DLTBBG"); BgTbLayer.FeatureClass = fcAPI.FeatureClass; } @@ -797,7 +797,7 @@ update dltbgxgc set tbbgmj=tbbgmj-0.01 where objectid in (select objectid from mTBBGGPParm.Add(TempDbPath); CustomGPHelper.DLTBBG_Tool(mTBBGGPParm); if (wsAPI == null) - wsAPI = new WorkspaceAPI(TempDbPath, WorkspaceTypeEnum.GDBFile); + wsAPI = new WorkspaceAPI(TempDbPath, WorkspaceTypeEnum.GDBFile, true); fcAPI = wsAPI.OpenFeatureClass("TempDLTBGX"); @@ -812,7 +812,7 @@ update dltbgxgc set tbbgmj=tbbgmj-0.01 where objectid in (select objectid from mGPParm.Add(GxPdtLayer); CustomGPHelper.SetGDPDJB_Tool(mGPParm); if (wsAPI == null) - wsAPI = new WorkspaceAPI(TempDbPath, WorkspaceTypeEnum.GDBFile); + wsAPI = new WorkspaceAPI(TempDbPath, WorkspaceTypeEnum.GDBFile, true); fcAPI = wsAPI.OpenFeatureClass("TempDLTBGX"); } else if (JcPdtLayer != null && JcPdtLayer.FeatureClass.FeatureCount(null) > 0) @@ -820,7 +820,7 @@ update dltbgxgc set tbbgmj=tbbgmj-0.01 where objectid in (select objectid from mGPParm.Add(JcPdtLayer); CustomGPHelper.SetGDPDJB_Tool(mGPParm); if (wsAPI == null) - wsAPI = new WorkspaceAPI(TempDbPath, WorkspaceTypeEnum.GDBFile); + wsAPI = new WorkspaceAPI(TempDbPath, WorkspaceTypeEnum.GDBFile, true); fcAPI = wsAPI.OpenFeatureClass("TempDLTBGX"); } } @@ -1510,7 +1510,7 @@ update dltbgxgc set tbbgmj=tbbgmj-0.01 where objectid in (select objectid from #endregion #region GXGCFcToFc - public bool GXGCFcToFc(IFeatureClass FeatureClass, IFeatureClass pFc, IQueryFilter pFilter, bool pIsCut, DataTable data_BSM, Dictionary GXGCvaluePairs,DataTable ContinueID) + public bool GXGCFcToFc(IFeatureClass FeatureClass, IFeatureClass pFc, IQueryFilter pFilter, bool pIsCut, DataTable data_BSM, Dictionary GXGCvaluePairs, DataTable ContinueID) { IFeatureCursor S_Cursor = null; IFeatureCursor T_Cursor = null; @@ -2153,7 +2153,7 @@ update dltbgxgc set tbbgmj=tbbgmj-0.01 where objectid in (select objectid from { } } - + private void Save() { List Entitys = GDEntitys.ToList(); diff --git a/KGIS_DLTB/Helper/ZLHZHelper.cs b/KGIS_DLTB/Helper/ZLHZHelper.cs index fbec065..66a2c57 100644 --- a/KGIS_DLTB/Helper/ZLHZHelper.cs +++ b/KGIS_DLTB/Helper/ZLHZHelper.cs @@ -264,7 +264,7 @@ namespace KGIS_DLTB //LayerCfg _JcCzcLayerInfo = NcList.FirstOrDefault(f => f.LayerName == "城镇村等用地"); //_jcCzcLayer = OpenLayer(_JcCzcLayerInfo); - IWorkspaceAPI JCAPI = new WorkspaceAPI(parm.PrjInfo.JCKPath, KGIS.Framework.AE.Enum.WorkspaceTypeEnum.GDBFile); + IWorkspaceAPI JCAPI = new WorkspaceAPI(parm.PrjInfo.JCKPath, KGIS.Framework.AE.Enum.WorkspaceTypeEnum.GDBFile, true); _jcCzcLayer = new FeatureLayer() { FeatureClass = JCAPI.OpenFeatureClass("CZCDYD").FeatureClass, Name = "城镇村等用地" }; //if (_JcCzcLayerInfo == null) // throw new Exception("Err:获取年初城镇村等用地数据失败!"); diff --git a/KGIS_DLTB/Program.cs b/KGIS_DLTB/Program.cs index 7310a22..5559c62 100644 --- a/KGIS_DLTB/Program.cs +++ b/KGIS_DLTB/Program.cs @@ -27,7 +27,7 @@ namespace KGIS_DLTB { return; } - //args = new string[] { "PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iZ2IyMzEyIj8+PElER1BhcmFtZXRlciB4bWxuczp4c2k9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hLWluc3RhbmNlIiB4bWxuczp4c2Q9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hIj48QWxsb3dVbmlvbj50cnVlPC9BbGxvd1VuaW9uPjxBdXRvQ2FsY0dES0NTWD50cnVlPC9BdXRvQ2FsY0dES0NTWD48QXV0b1NldEdETFg+dHJ1ZTwvQXV0b1NldEdETFg+PEFsbG93UERGWj50cnVlPC9BbGxvd1BERlo+PFN0clByb2pJbmZvPkk6XOW3peS9nFzlt6XkvZznm67lvZVc5rWB6YeP5YiG5p6Q5rWL6K+V5pWw5o2uXDExXFRlbXBcMTMwNDI1XDEzMDQyNS5LQkc8L1N0clByb2pJbmZvPjxFeGVETFRCPnRydWU8L0V4ZURMVEI+PEV4ZUdEREI+ZmFsc2U8L0V4ZUdEREI+PEV4ZUNKRENRPmZhbHNlPC9FeGVDSkRDUT48RXhlWFpRPmZhbHNlPC9FeGVYWlE+PEV4ZUNaQz5mYWxzZTwvRXhlQ1pDPjxFeGVaTEhaPnRydWU8L0V4ZVpMSFo+PC9JREdQYXJhbWV0ZXI+" }; + //args = new string[] { "PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iZ2IyMzEyIj8+PElER1BhcmFtZXRlciB4bWxuczp4c2k9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hLWluc3RhbmNlIiB4bWxuczp4c2Q9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hIj48QWxsb3dVbmlvbj50cnVlPC9BbGxvd1VuaW9uPjxBdXRvQ2FsY0dES0NTWD50cnVlPC9BdXRvQ2FsY0dES0NTWD48QXV0b1NldEdETFg+dHJ1ZTwvQXV0b1NldEdETFg+PEFsbG93UERGWj50cnVlPC9BbGxvd1BERlo+PFN0clByb2pJbmZvPkk6XOW3peS9nFzlt6XkvZznm67lvZVc5rWB6YeP5YiG5p6Q5rWL6K+V5pWw5o2uXFNcVGVtcFwxMzExMjNcMTMxMTIzLktCRzwvU3RyUHJvakluZm8+PEV4ZURMVEI+dHJ1ZTwvRXhlRExUQj48RXhlR0REQj5mYWxzZTwvRXhlR0REQj48RXhlQ0pEQ1E+ZmFsc2U8L0V4ZUNKRENRPjxFeGVYWlE+ZmFsc2U8L0V4ZVhaUT48RXhlQ1pDPmZhbHNlPC9FeGVDWkM+PEV4ZVpMSFo+dHJ1ZTwvRXhlWkxIWj48L0lER1BhcmFtZXRlcj4=" }; if (args.Length == 1) { Exe(args[0]); diff --git a/UserControl1.xaml b/UserControl1.xaml index aae3e12..cff0e0a 100644 --- a/UserControl1.xaml +++ b/UserControl1.xaml @@ -8,7 +8,7 @@ xmlns:btn="clr-namespace:KUI.Button;assembly=KUI" xmlns:kui="clr-namespace:KUI;assembly=KUI" mc:Ignorable="d" - d:DesignHeight="600" d:DesignWidth="900"> + d:DesignHeight="700" d:DesignWidth="900"> @@ -25,7 +25,7 @@ - + @@ -38,7 +38,7 @@ - + @@ -57,9 +57,24 @@ + + + + + + + diff --git a/UserControl1.xaml.cs b/UserControl1.xaml.cs index 21cd716..84ee1c6 100644 --- a/UserControl1.xaml.cs +++ b/UserControl1.xaml.cs @@ -1,6 +1,5 @@ using Aspose.Cells; -using DevExpress.Xpf.Core; -using DevExpress.XtraEditors.Filtering; +using DevExpress.XtraPrinting.Native; using ESRI.ArcGIS.Carto; using ESRI.ArcGIS.DataManagementTools; using ESRI.ArcGIS.DataSourcesFile; @@ -32,10 +31,9 @@ using System.IO; using System.Linq; using System.Runtime.InteropServices; using System.Security.AccessControl; -using System.Threading; using System.Windows; using System.Windows.Forms; -using System.Windows.Input; +using System.Windows.Media; using System.Xml.Linq; using WpfApp1.Helper; using WpfApp1.Model; @@ -257,6 +255,11 @@ namespace WpfApp1 //变更数据 var filesshp = System.IO.Directory.GetFiles(dirPath, "*.shp", SearchOption.AllDirectories); files.AddRange(filesshp); + if (files.Count == 0) + { + filesshp = System.IO.Directory.GetDirectories(dirPath, "*.gdb", SearchOption.TopDirectoryOnly); + files.AddRange(filesshp); + } foreach (var item in files) { FileInfo file = new FileInfo(item); @@ -461,6 +464,11 @@ namespace WpfApp1 MessageHelper.ShowTips("请先选择数据阶段."); return; } + if (this.DLTBGXGC.IsChecked != true && this.JCTB.IsChecked != true && this.GTDCY.IsChecked != true) + { + MessageHelper.ShowTips("请先选择待分析数据类型."); + return; + } btn_oK.IsEnabled = false; btn_nO.IsEnabled = false; int num = 0; @@ -487,18 +495,18 @@ namespace WpfApp1 analysisExport = item, }; CustomIDGParm mIDGParm = null; - //if (this.DLTBGXGC.IsChecked == true) - //{ - // mIDGParm = InitData_DLTBGXGC(pParm); - //} + if (this.DLTBGXGC.IsChecked == true) + { + mIDGParm = InitData_DLTBGXGC(pParm); + } //else if (this.DLTBGX.IsChecked == true) //{ // mIDGParm = InitData_DLTBGX(pParm); //} - //else - //{ - mIDGParm = InitData(pParm); - //} + else + { + mIDGParm = InitData(pParm); + } item.Prompt = "正在分析……"; ThreadManager.Instance.QueueUserWorkItem(new System.Threading.WaitCallback(ExecuteBG), mIDGParm, new System.Threading.WaitCallback(ComplateCallBack)); num++; @@ -625,47 +633,52 @@ namespace WpfApp1 IFeatureClassAPI fcSourceAPI = tempBGAPI.OpenFeatureClass("DLTBBG"); if (this.overlap.IsChecked == true) { - #region 根据sjdrly 擦除重复数据 1 国家提取 2自主提取 用sjdrly=1的 擦除sjdrly=2的数据 然后拆分多部件 - IFeatureClassAPI sjdrly_1 = tempBGAPI.CreateFeatureClass("sjdrly1", fcSourceAPI.FeatureClass.FeatureDataset, (JCFeatureLayer.FeatureClass as IGeoDataset).SpatialReference, esriGeometryType.esriGeometryPolygon, outsideFeatureClass.Fields); - IFeatureClassAPI sjdrly_2 = tempBGAPI.CreateFeatureClass("sjdrly2", fcSourceAPI.FeatureClass.FeatureDataset, (JCFeatureLayer.FeatureClass as IGeoDataset).SpatialReference, esriGeometryType.esriGeometryPolygon, outsideFeatureClass.Fields); - IFeatureClassAPI fcAPI = new FeatureClassAPI(outsideFeatureClass); - queryFilter.WhereClause = $"sdxz = '3' and nodeid in({nodeid.Substring(0, nodeid.Length - 1)}) and xzqdm='{analysisExport.XZQDM}' and sjdrly='1' "; - fcAPI.FcToFc(sjdrly_1.FeatureClass, queryFilter, true); - RepairGeo(sjdrly_1.FeatureClass); - queryFilter.WhereClause = $"sdxz = '3' and nodeid in({nodeid.Substring(0, nodeid.Length - 1)}) and xzqdm='{analysisExport.XZQDM}' and sjdrly='2' "; - fcAPI.FcToFc(sjdrly_2.FeatureClass, queryFilter, true); - RepairGeo(sjdrly_2.FeatureClass); - gPParamClass = new GPParamClass + if (GTDCY.IsChecked == true) { - FirstFeatureLayer = new FeatureLayer() { FeatureClass = sjdrly_1.FeatureClass, Name = "sjdrly1" }, - SecondFeatureLayer = new FeatureLayer() { FeatureClass = sjdrly_2.FeatureClass, Name = "sjdrly2" }, - OutFeatureClassPath = $"{tempBGDatabase}\\UnionLayer", - IsGetOutPutFeature = true, - GPType = EnumGPType.Union, - }; - GeoprocessorHelper.UnionAnalysis(gPParamClass, ref UnionLayer); - #region 拆分多部件 - gPParamClass = new GPParamClass(); - gPParamClass.FirstFeatureLayer = UnionLayer; - gPParamClass.OutFeatureClassPath = $"{tempBGDatabase}\\AfterTreatment"; - gPParamClass.IsGetOutPutFeature = true; - gPParamClass.GPType = EnumGPType.MultipartToSinglePath; - GPHelper.Instance.ExeGPForProces(gPParamClass, ref MultipartLayer); - outsideFeatureClass = MultipartLayer.FeatureClass; - #endregion - #endregion + #region 根据sjdrly 擦除重复数据 1 国家提取 2自主提取 用sjdrly=1的 擦除sjdrly=2的数据 然后拆分多部件 + IFeatureClassAPI sjdrly_1 = tempBGAPI.CreateFeatureClass("sjdrly1", fcSourceAPI.FeatureClass.FeatureDataset, (JCFeatureLayer.FeatureClass as IGeoDataset).SpatialReference, esriGeometryType.esriGeometryPolygon, outsideFeatureClass.Fields); + IFeatureClassAPI sjdrly_2 = tempBGAPI.CreateFeatureClass("sjdrly2", fcSourceAPI.FeatureClass.FeatureDataset, (JCFeatureLayer.FeatureClass as IGeoDataset).SpatialReference, esriGeometryType.esriGeometryPolygon, outsideFeatureClass.Fields); + IFeatureClassAPI fcAPI = new FeatureClassAPI(outsideFeatureClass); + queryFilter.WhereClause = $"sdxz = '3' and nodeid in({nodeid.Substring(0, nodeid.Length - 1)}) and xzqdm='{analysisExport.XZQDM}' and sjdrly='1' "; + fcAPI.FcToFc(sjdrly_1.FeatureClass, queryFilter, true); + RepairGeo(sjdrly_1.FeatureClass); + queryFilter.WhereClause = $"sdxz = '3' and nodeid in({nodeid.Substring(0, nodeid.Length - 1)}) and xzqdm='{analysisExport.XZQDM}' and sjdrly='2' "; + fcAPI.FcToFc(sjdrly_2.FeatureClass, queryFilter, true); + RepairGeo(sjdrly_2.FeatureClass); + gPParamClass = new GPParamClass + { + FirstFeatureLayer = new FeatureLayer() { FeatureClass = sjdrly_1.FeatureClass, Name = "sjdrly1" }, + SecondFeatureLayer = new FeatureLayer() { FeatureClass = sjdrly_2.FeatureClass, Name = "sjdrly2" }, + OutFeatureClassPath = $"{tempBGDatabase}\\UnionLayer", + IsGetOutPutFeature = true, + GPType = EnumGPType.Union, + }; + GeoprocessorHelper.UnionAnalysis(gPParamClass, ref UnionLayer); + #region 拆分多部件 + gPParamClass = new GPParamClass(); + gPParamClass.FirstFeatureLayer = UnionLayer; + gPParamClass.OutFeatureClassPath = $"{tempBGDatabase}\\AfterTreatment"; + gPParamClass.IsGetOutPutFeature = true; + gPParamClass.GPType = EnumGPType.MultipartToSinglePath; + GPHelper.Instance.ExeGPForProces(gPParamClass, ref MultipartLayer); + outsideFeatureClass = MultipartLayer.FeatureClass; + #endregion + #endregion + } } if (this.czc20x.IsChecked == true) { tempBGFeatureClass = tempBGAPI.OpenFeatureClass("DLTBBG").FeatureClass; - if (this.overlap.IsChecked == false) + if (GTDCY.IsChecked == true) + { queryFilter.WhereClause = $"sdxz = '3' and nodeid in({nodeid.Substring(0, nodeid.Length - 1)}) and xzqdm='{analysisExport.XZQDM}' "; - else - queryFilter.WhereClause = "1=1"; - queryFilter.WhereClause = $"xzqdm='{analysisExport.XZQDM}' ";//河北 - BGFWFcToFc_0813(outsideFeatureClass, tempBGFeatureClass, queryFilter); - //BGFWFcToFc(outsideFeatureClass, tempBGFeatureClass, queryFilter); - + BGFWFcToFc(outsideFeatureClass, tempBGFeatureClass, queryFilter); + } + else if (this.JCTB.IsChecked == true) + { + queryFilter.WhereClause = $"xzqdm='{analysisExport.XZQDM}' ";//河北 + BGFWFcToFc_0813(outsideFeatureClass, tempBGFeatureClass, queryFilter); + } if (tempBGFeatureClass.FeatureCount(null) == 0) return null; #region 与基础城镇村Union 赋值CZC20属性 string templeteGDBPath = System.IO.Path.Combine(SysAppPath.GetCurrentAppPath(), "Template", "TempGDB.gdb"); @@ -702,14 +715,16 @@ namespace WpfApp1 } else { - //if (this.overlap.IsChecked == false) - // queryFilter.WhereClause = $"sdxz = '3' and nodeid in({nodeid.Substring(0, nodeid.Length - 1)}) and xzqdm='{analysisExport.XZQDM}' "; - //queryFilter.WhereClause = $" xzqdm='{analysisExport.XZQDM}' ";//山西版本 - //queryFilter.WhereClause = $" sdxz = '3' and xzqdm='{analysisExport.XZQDM}' ";//山西 - queryFilter.WhereClause = $"xzqdm='{analysisExport.XZQDM}' ";//河北 - //else - // queryFilter.WhereClause = "1=1"; - BGFWFcToFc_0813(outsideFeatureClass, BGFeatureClass, queryFilter); + if (this.JCTB.IsChecked == true) + { + queryFilter.WhereClause = $"xzqdm='{analysisExport.XZQDM}' ";//河北 + BGFWFcToFc_0813(outsideFeatureClass, BGFeatureClass, queryFilter); + } + else if (this.GTDCY.IsChecked == true) + { + queryFilter.WhereClause = $"sdxz = '3' and nodeid in({nodeid.Substring(0, nodeid.Length - 1)}) and xzqdm='{analysisExport.XZQDM}' "; + BGFWFcToFc(outsideFeatureClass, BGFeatureClass, queryFilter); + } } if (BGFeatureClass.FeatureCount(null) == 0) return null; CustomIDGParm Parm = new CustomIDGParm(); @@ -775,6 +790,7 @@ namespace WpfApp1 IWorkspaceAPI BGAPI = null; IWorkspaceAPI tempBGAPI = null; IWorkspaceAPI ZLAPI = null; + IWorkspaceAPI outsideWorkspaceAPI = null; ITable dltbgxTb = null; IFeatureLayer MultipartLayer = null; IFeatureLayer UnionLayer = null; @@ -787,10 +803,19 @@ namespace WpfApp1 ThreadParam param = pThreadParm as ThreadParam; AnalysisExport analysisExport = param.analysisExport; #region 初始化工程模版 - IWorkspaceFactory wsf = new ShapefileWorkspaceFactory(); - pWorkspace = wsf.OpenFromFile(analysisExport.ParengFolder, 0); - IFeatureWorkspace pFeatureWorkspace = pWorkspace as IFeatureWorkspace; - outsideFeatureClass = pFeatureWorkspace.OpenFeatureClass(analysisExport.FileName.Replace(".shp", "")); + + if (analysisExport.FileName.EndsWith(".shp")) + { + IWorkspaceFactory wsf = new ShapefileWorkspaceFactory(); + pWorkspace = wsf.OpenFromFile(analysisExport.ParengFolder, 0); + IFeatureWorkspace pFeatureWorkspace = pWorkspace as IFeatureWorkspace; + outsideFeatureClass = pFeatureWorkspace.OpenFeatureClass(analysisExport.FileName.Replace(".shp", "")); + } + else if (analysisExport.BGFWPath.EndsWith(".gdb")) + { + outsideWorkspaceAPI = new WorkspaceAPI(analysisExport.BGFWPath, KGIS.Framework.AE.Enum.WorkspaceTypeEnum.GDBFile, true); + outsideFeatureClass = outsideWorkspaceAPI.OpenFeatureClass("DLTBGXGC").FeatureClass; + } string temppath = analysisExport.OutputExcelPath + $"\\Temp\\{analysisExport.XZQDM}"; if (!Directory.Exists(temppath)) { @@ -804,17 +829,17 @@ namespace WpfApp1 } catch (Exception ex) { } } - JCAPI = new WorkspaceAPI(analysisExport.JCSJPath, KGIS.Framework.AE.Enum.WorkspaceTypeEnum.GDBFile); + JCAPI = new WorkspaceAPI(analysisExport.JCSJPath, KGIS.Framework.AE.Enum.WorkspaceTypeEnum.GDBFile, true); JCFeatureLayer = new FeatureLayer() { FeatureClass = JCAPI.OpenFeatureClass("DLTB").FeatureClass }; //复制变更gdb DirectoryCopy(SysAppPath.GetCurrentAppPath() + "Template\\BGDB.gdb", temppath); string BGDatabase = System.IO.Path.Combine(temppath, "BGDB.gdb"); - BGAPI = new WorkspaceAPI(BGDatabase, KGIS.Framework.AE.Enum.WorkspaceTypeEnum.GDBFile); + BGAPI = new WorkspaceAPI(BGDatabase, KGIS.Framework.AE.Enum.WorkspaceTypeEnum.GDBFile, true); GeoDBAPI.SetGeoDatasetSpatialReference(BGAPI.CurrentWorkspace, (JCFeatureLayer.FeatureClass as IGeoDataset).SpatialReference, 0.0001); //复制增量gdb DirectoryCopy(SysAppPath.GetCurrentAppPath() + "Template\\ZLDB.gdb", temppath); string ZLDatabase = System.IO.Path.Combine(temppath, "ZLDB.gdb"); - ZLAPI = new WorkspaceAPI(ZLDatabase, KGIS.Framework.AE.Enum.WorkspaceTypeEnum.GDBFile); + ZLAPI = new WorkspaceAPI(ZLDatabase, KGIS.Framework.AE.Enum.WorkspaceTypeEnum.GDBFile, true); GeoDBAPI.SetGeoDatasetSpatialReference(ZLAPI.CurrentWorkspace, (JCFeatureLayer.FeatureClass as IGeoDataset).SpatialReference, 0.0001); DirectoryCopy(SysAppPath.GetCurrentAppPath() + "Template\\BGTJ.sqlite", temppath); File.Copy(SysAppPath.GetCurrentAppPath() + "Template\\BGTJ.sqlite", temppath + "\\BGTJ.sqlite", true); @@ -823,11 +848,12 @@ namespace WpfApp1 #endregion DirectoryCopy(SysAppPath.GetCurrentAppPath() + "Template\\BGDB.gdb", temppath + "\\temp"); string tempBGDatabase = System.IO.Path.Combine(temppath + "\\temp", "BGDB.gdb"); - tempBGAPI = new WorkspaceAPI(tempBGDatabase, KGIS.Framework.AE.Enum.WorkspaceTypeEnum.GDBFile); + tempBGAPI = new WorkspaceAPI(tempBGDatabase, KGIS.Framework.AE.Enum.WorkspaceTypeEnum.GDBFile, true); GeoDBAPI.SetGeoDatasetSpatialReference(tempBGAPI.CurrentWorkspace, (JCFeatureLayer.FeatureClass as IGeoDataset).SpatialReference, 0.0001); IFeatureClassAPI fcAPI = new FeatureClassAPI(outsideFeatureClass); IFeatureClassAPI DLTBGXGCAPI = ZLAPI.OpenFeatureClass("DLTBGXGC"); - fcAPI.FcToFc(DLTBGXGCAPI.FeatureClass, new QueryFilterClass() { WhereClause = $"xzqdm='{analysisExport.XZQDM}'" }, true); + //fcAPI.FcToFc(DLTBGXGCAPI.FeatureClass, new QueryFilterClass() { WhereClause = $"xzqdm='{analysisExport.XZQDM}'" }, true); + fcAPI.FcToFc(DLTBGXGCAPI.FeatureClass, null, true); CustomIDGParm Parm = new CustomIDGParm(); IDGParameter mIDGParm = new IDGParameter(); @@ -879,6 +905,7 @@ namespace WpfApp1 JCAPI?.CloseWorkspace(); BGAPI?.CloseWorkspace(); ZLAPI?.CloseWorkspace(); + outsideWorkspaceAPI?.CloseWorkspace(); } } @@ -926,7 +953,7 @@ namespace WpfApp1 //复制增量gdb DirectoryCopy(SysAppPath.GetCurrentAppPath() + "Template\\ZLDB.gdb", temppath); string ZLDatabase = System.IO.Path.Combine(temppath, "ZLDB.gdb"); - ZLAPI = new WorkspaceAPI(ZLDatabase, KGIS.Framework.AE.Enum.WorkspaceTypeEnum.GDBFile); + ZLAPI = new WorkspaceAPI(ZLDatabase, KGIS.Framework.AE.Enum.WorkspaceTypeEnum.GDBFile, true); GeoDBAPI.SetGeoDatasetSpatialReference(ZLAPI.CurrentWorkspace, (JCFeatureLayer.FeatureClass as IGeoDataset).SpatialReference, 0.0001); DirectoryCopy(SysAppPath.GetCurrentAppPath() + "Template\\BGTJ.sqlite", temppath); File.Copy(SysAppPath.GetCurrentAppPath() + "Template\\BGTJ.sqlite", temppath + "\\BGTJ.sqlite", true); @@ -940,7 +967,7 @@ namespace WpfApp1 #endregion DirectoryCopy(SysAppPath.GetCurrentAppPath() + "Template\\BGDB.gdb", temppath + "\\temp"); string tempBGDatabase = System.IO.Path.Combine(temppath + "\\temp", "BGDB.gdb"); - tempBGAPI = new WorkspaceAPI(tempBGDatabase, KGIS.Framework.AE.Enum.WorkspaceTypeEnum.GDBFile); + tempBGAPI = new WorkspaceAPI(tempBGDatabase, KGIS.Framework.AE.Enum.WorkspaceTypeEnum.GDBFile, true); GeoDBAPI.SetGeoDatasetSpatialReference(tempBGAPI.CurrentWorkspace, (JCFeatureLayer.FeatureClass as IGeoDataset).SpatialReference, 0.0001); IFeatureClassAPI fcAPI = new FeatureClassAPI(outsideFeatureClass); @@ -1791,7 +1818,24 @@ namespace WpfApp1 buffer.Value[t_idlbm] = _TBLXConvert.DLBM; } } - buffer.Shape = f.ShapeCopy; + #region 投影坐标 + ISpatialReference s_spatialReference = f.ShapeCopy.SpatialReference; + ISpatialReference t_spatialReference = (targetFeatureClass.FeatureDataset as IGeoDataset).SpatialReference; + if (s_spatialReference.Name != t_spatialReference.Name) + { + IGeometry geo = null; + geo = f.ShapeCopy; + geo.SpatialReference = s_spatialReference; + geo.Project(t_spatialReference); + ITopologicalOperator topologicalOperator = geo as ITopologicalOperator; + topologicalOperator.Simplify(); + buffer.Shape = geo; + } + else + { + buffer.Shape = f.ShapeCopy; + } + #endregion T_Cursor.InsertFeature(buffer); } T_Cursor.Flush(); @@ -2045,7 +2089,11 @@ namespace WpfApp1 #region 流量分析数据为DLTBGXGC层数据 private void DLTBGXGC_Checked(object sender, RoutedEventArgs e) { - + if (DLTBGXGC.IsChecked == true) + { + GTDCY.IsChecked = false; + JCTB.IsChecked = false; + } } #endregion @@ -2337,6 +2385,24 @@ namespace WpfApp1 { } + + private void JCTB_Checked(object sender, RoutedEventArgs e) + { + if (JCTB.IsChecked == true) + { + this.GTDCY.IsChecked = false; + this.DLTBGXGC.IsChecked = false; + } + } + + private void GTDCY_Checked(object sender, RoutedEventArgs e) + { + if (GTDCY.IsChecked == true) + { + this.JCTB.IsChecked = false; + this.DLTBGXGC.IsChecked = false; + } + } } public class ThreadParam {