main
WGJ 4 weeks ago
parent 23ab5beeae
commit 593ea5d267
  1. BIN
      Apps/Resource/ZLDatabaseTool.tbx
  2. 2
      IDEForNDBG/GPHelper/ExeGPForProces.cs
  3. 2
      IDEForNDBG/Helper/DLTB_IDGForThreadHelper.cs
  4. 2
      IDEForNDBG/Helper/ZLHZHelper.cs
  5. 14
      KGIS_DLTB/Helper/DLTB_IDGHelper.cs
  6. 2
      KGIS_DLTB/Helper/ZLHZHelper.cs
  7. 2
      KGIS_DLTB/Program.cs
  8. 21
      UserControl1.xaml
  9. 202
      UserControl1.xaml.cs

Binary file not shown.

@ -122,7 +122,7 @@ namespace IDGForNDBG
{ {
//else //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); KGIS.Framework.AE.IFeatureClassAPI fcAPI = wsAPI.OpenFeatureClass(fcName);
result.FeatureClass = fcAPI.FeatureClass; result.FeatureClass = fcAPI.FeatureClass;
//} //}

@ -1450,7 +1450,7 @@ namespace IDGForNDBG
return result; return result;
} }
result.NmWsAPI = new WorkspaceAPI(PathNMDB, WorkspaceTypeEnum.GDBFile); 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 = "基础地类图斑" }; result.JcTbLayer = new FeatureLayer() { FeatureClass = JCAPI.OpenFeatureClass("DLTB").FeatureClass, Name = "基础地类图斑" };
if (result.JcTbLayer == null) if (result.JcTbLayer == null)
{ {

@ -263,7 +263,7 @@ namespace IDGForNDBG
//LayerCfg _JcCzcLayerInfo = NcList.FirstOrDefault(f => f.LayerName == "城镇村等用地"); //LayerCfg _JcCzcLayerInfo = NcList.FirstOrDefault(f => f.LayerName == "城镇村等用地");
//_jcCzcLayer = OpenLayer(_JcCzcLayerInfo); //_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 = "城镇村等用地" }; _jcCzcLayer = new FeatureLayer() { FeatureClass = JCAPI.OpenFeatureClass("CZCDYD").FeatureClass, Name = "城镇村等用地" };
//if (_JcCzcLayerInfo == null) //if (_JcCzcLayerInfo == null)
// throw new Exception("Err:获取年初城镇村等用地数据失败!"); // throw new Exception("Err:获取年初城镇村等用地数据失败!");

@ -653,7 +653,7 @@ update dltbgxgc set tbbgmj=tbbgmj-0.01 where objectid in (select objectid from
{ {
Console.WriteLine("打开年末数据库失败!"); 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 = "基础地类图斑" }; _jcTbLayer = new FeatureLayer() { FeatureClass = JCAPI.OpenFeatureClass("DLTB").FeatureClass, Name = "基础地类图斑" };
if (_jcTbLayer == null) 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(TempDbPath);
mGPParm.Add("DLTBBG"); mGPParm.Add("DLTBBG");
CustomGPHelper.DLTBBGDissolve_Tool(mGPParm); CustomGPHelper.DLTBBGDissolve_Tool(mGPParm);
wsAPI = new WorkspaceAPI(TempDbPath, WorkspaceTypeEnum.GDBFile); wsAPI = new WorkspaceAPI(TempDbPath, WorkspaceTypeEnum.GDBFile, true);
fcAPI = wsAPI.OpenFeatureClass("DLTBBG"); fcAPI = wsAPI.OpenFeatureClass("DLTBBG");
BgTbLayer.FeatureClass = fcAPI.FeatureClass; BgTbLayer.FeatureClass = fcAPI.FeatureClass;
} }
@ -797,7 +797,7 @@ update dltbgxgc set tbbgmj=tbbgmj-0.01 where objectid in (select objectid from
mTBBGGPParm.Add(TempDbPath); mTBBGGPParm.Add(TempDbPath);
CustomGPHelper.DLTBBG_Tool(mTBBGGPParm); CustomGPHelper.DLTBBG_Tool(mTBBGGPParm);
if (wsAPI == null) if (wsAPI == null)
wsAPI = new WorkspaceAPI(TempDbPath, WorkspaceTypeEnum.GDBFile); wsAPI = new WorkspaceAPI(TempDbPath, WorkspaceTypeEnum.GDBFile, true);
fcAPI = wsAPI.OpenFeatureClass("TempDLTBGX"); fcAPI = wsAPI.OpenFeatureClass("TempDLTBGX");
@ -812,7 +812,7 @@ update dltbgxgc set tbbgmj=tbbgmj-0.01 where objectid in (select objectid from
mGPParm.Add(GxPdtLayer); mGPParm.Add(GxPdtLayer);
CustomGPHelper.SetGDPDJB_Tool(mGPParm); CustomGPHelper.SetGDPDJB_Tool(mGPParm);
if (wsAPI == null) if (wsAPI == null)
wsAPI = new WorkspaceAPI(TempDbPath, WorkspaceTypeEnum.GDBFile); wsAPI = new WorkspaceAPI(TempDbPath, WorkspaceTypeEnum.GDBFile, true);
fcAPI = wsAPI.OpenFeatureClass("TempDLTBGX"); fcAPI = wsAPI.OpenFeatureClass("TempDLTBGX");
} }
else if (JcPdtLayer != null && JcPdtLayer.FeatureClass.FeatureCount(null) > 0) 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); mGPParm.Add(JcPdtLayer);
CustomGPHelper.SetGDPDJB_Tool(mGPParm); CustomGPHelper.SetGDPDJB_Tool(mGPParm);
if (wsAPI == null) if (wsAPI == null)
wsAPI = new WorkspaceAPI(TempDbPath, WorkspaceTypeEnum.GDBFile); wsAPI = new WorkspaceAPI(TempDbPath, WorkspaceTypeEnum.GDBFile, true);
fcAPI = wsAPI.OpenFeatureClass("TempDLTBGX"); fcAPI = wsAPI.OpenFeatureClass("TempDLTBGX");
} }
} }
@ -1510,7 +1510,7 @@ update dltbgxgc set tbbgmj=tbbgmj-0.01 where objectid in (select objectid from
#endregion #endregion
#region GXGCFcToFc #region GXGCFcToFc
public bool GXGCFcToFc(IFeatureClass FeatureClass, IFeatureClass pFc, IQueryFilter pFilter, bool pIsCut, DataTable data_BSM, Dictionary<int, double> GXGCvaluePairs,DataTable ContinueID) public bool GXGCFcToFc(IFeatureClass FeatureClass, IFeatureClass pFc, IQueryFilter pFilter, bool pIsCut, DataTable data_BSM, Dictionary<int, double> GXGCvaluePairs, DataTable ContinueID)
{ {
IFeatureCursor S_Cursor = null; IFeatureCursor S_Cursor = null;
IFeatureCursor T_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() private void Save()
{ {
List<GDEntity> Entitys = GDEntitys.ToList(); List<GDEntity> Entitys = GDEntitys.ToList();

@ -264,7 +264,7 @@ namespace KGIS_DLTB
//LayerCfg _JcCzcLayerInfo = NcList.FirstOrDefault(f => f.LayerName == "城镇村等用地"); //LayerCfg _JcCzcLayerInfo = NcList.FirstOrDefault(f => f.LayerName == "城镇村等用地");
//_jcCzcLayer = OpenLayer(_JcCzcLayerInfo); //_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 = "城镇村等用地" }; _jcCzcLayer = new FeatureLayer() { FeatureClass = JCAPI.OpenFeatureClass("CZCDYD").FeatureClass, Name = "城镇村等用地" };
//if (_JcCzcLayerInfo == null) //if (_JcCzcLayerInfo == null)
// throw new Exception("Err:获取年初城镇村等用地数据失败!"); // throw new Exception("Err:获取年初城镇村等用地数据失败!");

@ -27,7 +27,7 @@ namespace KGIS_DLTB
{ {
return; 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) if (args.Length == 1)
{ {
Exe(args[0]); Exe(args[0]);

@ -8,7 +8,7 @@
xmlns:btn="clr-namespace:KUI.Button;assembly=KUI" xmlns:btn="clr-namespace:KUI.Button;assembly=KUI"
xmlns:kui="clr-namespace:KUI;assembly=KUI" xmlns:kui="clr-namespace:KUI;assembly=KUI"
mc:Ignorable="d" mc:Ignorable="d"
d:DesignHeight="600" d:DesignWidth="900"> d:DesignHeight="700" d:DesignWidth="900">
<Grid Background="White"> <Grid Background="White">
<Grid> <Grid>
<Grid.ColumnDefinitions> <Grid.ColumnDefinitions>
@ -25,7 +25,7 @@
<Grid.RowDefinitions> <Grid.RowDefinitions>
<RowDefinition Height="50"/> <RowDefinition Height="50"/>
<!--<RowDefinition Height="50"/>--> <!--<RowDefinition Height="50"/>-->
<RowDefinition Height="100"/> <RowDefinition Height="150"/>
<!--<RowDefinition Height="40"/>--> <!--<RowDefinition Height="40"/>-->
</Grid.RowDefinitions> </Grid.RowDefinitions>
<Grid.ColumnDefinitions> <Grid.ColumnDefinitions>
@ -38,7 +38,7 @@
<btn:KImgButton Height="30" Name="SelectBGTB" Click="SelectBGTB_Click" Grid.Column="2" Grid.Row="0" VerticalContentAlignment="Center" Content="选 择" /> <btn:KImgButton Height="30" Name="SelectBGTB" Click="SelectBGTB_Click" Grid.Column="2" Grid.Row="0" VerticalContentAlignment="Center" Content="选 择" />
<Grid Grid.Row="1" Grid.ColumnSpan="3"> <Grid Grid.Row="1" Grid.ColumnSpan="3">
<Grid.RowDefinitions> <Grid.RowDefinitions>
<RowDefinition Height="100"/> <RowDefinition Height="150"/>
</Grid.RowDefinitions> </Grid.RowDefinitions>
<Grid.ColumnDefinitions> <Grid.ColumnDefinitions>
<ColumnDefinition Width="100"/> <ColumnDefinition Width="100"/>
@ -57,9 +57,24 @@
<StackPanel Orientation="Horizontal"> <StackPanel Orientation="Horizontal">
<CheckBox x:Name="czc20x" Content="根据20X赋值:" Checked="czc20x_Checked" VerticalContentAlignment="Center" Margin="20,0" IsChecked="False" /> <CheckBox x:Name="czc20x" Content="根据20X赋值:" Checked="czc20x_Checked" VerticalContentAlignment="Center" Margin="20,0" IsChecked="False" />
</StackPanel> </StackPanel>
<StackPanel Orientation="Horizontal">
<CheckBox x:Name="JCTB" Content="国家下发监测图斑:" Checked="JCTB_Checked" VerticalContentAlignment="Center" Margin="20,0" IsChecked="False" />
</StackPanel>
<StackPanel Orientation="Horizontal"> <StackPanel Orientation="Horizontal">
<CheckBox x:Name="DLTBGXGC" Content="增量数据(DLTBGXGC):" Checked="DLTBGXGC_Checked" VerticalContentAlignment="Center" Margin="20,0" IsChecked="False" /> <CheckBox x:Name="DLTBGXGC" Content="增量数据(DLTBGXGC):" Checked="DLTBGXGC_Checked" VerticalContentAlignment="Center" Margin="20,0" IsChecked="False" />
</StackPanel> </StackPanel>
<StackPanel Orientation="Horizontal">
<CheckBox x:Name="GTDCY" Content="国土调查云下载矢量:" Checked="GTDCY_Checked" VerticalContentAlignment="Center" Margin="20,0" IsChecked="False" />
</StackPanel>
<!--<StackPanel Orientation="Horizontal">
<CheckBox x:Name="JCTB" Content="国家下发监测图斑:" Checked="JCTB_Checked" VerticalContentAlignment="Center" Margin="20,0" IsChecked="False" />
</StackPanel>
<StackPanel Orientation="Horizontal">
<CheckBox x:Name="DLTBGXGC" Content="增量数据(DLTBGXGC):" Checked="DLTBGXGC_Checked" VerticalContentAlignment="Center" Margin="20,0" IsChecked="False" />
</StackPanel>
<StackPanel Orientation="Horizontal">
<CheckBox x:Name="GTDCY" Content="国土调查云下载矢量:" Checked="GTDCY_Checked" VerticalContentAlignment="Center" Margin="20,0" IsChecked="False" />
</StackPanel>-->
<!--<StackPanel Orientation="Horizontal"> <!--<StackPanel Orientation="Horizontal">
<CheckBox x:Name="DLTBGX" Content="增量数据(DLTBGX):" Checked="DLTBGX_Checked" VerticalContentAlignment="Center" Margin="20,0" IsChecked="False" /> <CheckBox x:Name="DLTBGX" Content="增量数据(DLTBGX):" Checked="DLTBGX_Checked" VerticalContentAlignment="Center" Margin="20,0" IsChecked="False" />
</StackPanel>--> </StackPanel>-->

@ -1,6 +1,5 @@
using Aspose.Cells; using Aspose.Cells;
using DevExpress.Xpf.Core; using DevExpress.XtraPrinting.Native;
using DevExpress.XtraEditors.Filtering;
using ESRI.ArcGIS.Carto; using ESRI.ArcGIS.Carto;
using ESRI.ArcGIS.DataManagementTools; using ESRI.ArcGIS.DataManagementTools;
using ESRI.ArcGIS.DataSourcesFile; using ESRI.ArcGIS.DataSourcesFile;
@ -32,10 +31,9 @@ using System.IO;
using System.Linq; using System.Linq;
using System.Runtime.InteropServices; using System.Runtime.InteropServices;
using System.Security.AccessControl; using System.Security.AccessControl;
using System.Threading;
using System.Windows; using System.Windows;
using System.Windows.Forms; using System.Windows.Forms;
using System.Windows.Input; using System.Windows.Media;
using System.Xml.Linq; using System.Xml.Linq;
using WpfApp1.Helper; using WpfApp1.Helper;
using WpfApp1.Model; using WpfApp1.Model;
@ -257,6 +255,11 @@ namespace WpfApp1
//变更数据 //变更数据
var filesshp = System.IO.Directory.GetFiles(dirPath, "*.shp", SearchOption.AllDirectories); var filesshp = System.IO.Directory.GetFiles(dirPath, "*.shp", SearchOption.AllDirectories);
files.AddRange(filesshp); files.AddRange(filesshp);
if (files.Count == 0)
{
filesshp = System.IO.Directory.GetDirectories(dirPath, "*.gdb", SearchOption.TopDirectoryOnly);
files.AddRange(filesshp);
}
foreach (var item in files) foreach (var item in files)
{ {
FileInfo file = new FileInfo(item); FileInfo file = new FileInfo(item);
@ -461,6 +464,11 @@ namespace WpfApp1
MessageHelper.ShowTips("请先选择数据阶段."); MessageHelper.ShowTips("请先选择数据阶段.");
return; return;
} }
if (this.DLTBGXGC.IsChecked != true && this.JCTB.IsChecked != true && this.GTDCY.IsChecked != true)
{
MessageHelper.ShowTips("请先选择待分析数据类型.");
return;
}
btn_oK.IsEnabled = false; btn_oK.IsEnabled = false;
btn_nO.IsEnabled = false; btn_nO.IsEnabled = false;
int num = 0; int num = 0;
@ -487,18 +495,18 @@ namespace WpfApp1
analysisExport = item, analysisExport = item,
}; };
CustomIDGParm mIDGParm = null; CustomIDGParm mIDGParm = null;
//if (this.DLTBGXGC.IsChecked == true) if (this.DLTBGXGC.IsChecked == true)
//{ {
// mIDGParm = InitData_DLTBGXGC(pParm); mIDGParm = InitData_DLTBGXGC(pParm);
//} }
//else if (this.DLTBGX.IsChecked == true) //else if (this.DLTBGX.IsChecked == true)
//{ //{
// mIDGParm = InitData_DLTBGX(pParm); // mIDGParm = InitData_DLTBGX(pParm);
//} //}
//else else
//{ {
mIDGParm = InitData(pParm); mIDGParm = InitData(pParm);
//} }
item.Prompt = "正在分析……"; item.Prompt = "正在分析……";
ThreadManager.Instance.QueueUserWorkItem(new System.Threading.WaitCallback(ExecuteBG), mIDGParm, new System.Threading.WaitCallback(ComplateCallBack)); ThreadManager.Instance.QueueUserWorkItem(new System.Threading.WaitCallback(ExecuteBG), mIDGParm, new System.Threading.WaitCallback(ComplateCallBack));
num++; num++;
@ -625,47 +633,52 @@ namespace WpfApp1
IFeatureClassAPI fcSourceAPI = tempBGAPI.OpenFeatureClass("DLTBBG"); IFeatureClassAPI fcSourceAPI = tempBGAPI.OpenFeatureClass("DLTBBG");
if (this.overlap.IsChecked == true) if (this.overlap.IsChecked == true)
{ {
#region 根据sjdrly 擦除重复数据 1 国家提取 2自主提取 用sjdrly=1的 擦除sjdrly=2的数据 然后拆分多部件 if (GTDCY.IsChecked == true)
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" }, #region 根据sjdrly 擦除重复数据 1 国家提取 2自主提取 用sjdrly=1的 擦除sjdrly=2的数据 然后拆分多部件
SecondFeatureLayer = new FeatureLayer() { FeatureClass = sjdrly_2.FeatureClass, Name = "sjdrly2" }, IFeatureClassAPI sjdrly_1 = tempBGAPI.CreateFeatureClass("sjdrly1", fcSourceAPI.FeatureClass.FeatureDataset, (JCFeatureLayer.FeatureClass as IGeoDataset).SpatialReference, esriGeometryType.esriGeometryPolygon, outsideFeatureClass.Fields);
OutFeatureClassPath = $"{tempBGDatabase}\\UnionLayer", IFeatureClassAPI sjdrly_2 = tempBGAPI.CreateFeatureClass("sjdrly2", fcSourceAPI.FeatureClass.FeatureDataset, (JCFeatureLayer.FeatureClass as IGeoDataset).SpatialReference, esriGeometryType.esriGeometryPolygon, outsideFeatureClass.Fields);
IsGetOutPutFeature = true, IFeatureClassAPI fcAPI = new FeatureClassAPI(outsideFeatureClass);
GPType = EnumGPType.Union, 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);
GeoprocessorHelper.UnionAnalysis(gPParamClass, ref UnionLayer); RepairGeo(sjdrly_1.FeatureClass);
#region 拆分多部件 queryFilter.WhereClause = $"sdxz = '3' and nodeid in({nodeid.Substring(0, nodeid.Length - 1)}) and xzqdm='{analysisExport.XZQDM}' and sjdrly='2' ";
gPParamClass = new GPParamClass(); fcAPI.FcToFc(sjdrly_2.FeatureClass, queryFilter, true);
gPParamClass.FirstFeatureLayer = UnionLayer; RepairGeo(sjdrly_2.FeatureClass);
gPParamClass.OutFeatureClassPath = $"{tempBGDatabase}\\AfterTreatment"; gPParamClass = new GPParamClass
gPParamClass.IsGetOutPutFeature = true; {
gPParamClass.GPType = EnumGPType.MultipartToSinglePath; FirstFeatureLayer = new FeatureLayer() { FeatureClass = sjdrly_1.FeatureClass, Name = "sjdrly1" },
GPHelper.Instance.ExeGPForProces(gPParamClass, ref MultipartLayer); SecondFeatureLayer = new FeatureLayer() { FeatureClass = sjdrly_2.FeatureClass, Name = "sjdrly2" },
outsideFeatureClass = MultipartLayer.FeatureClass; OutFeatureClassPath = $"{tempBGDatabase}\\UnionLayer",
#endregion IsGetOutPutFeature = true,
#endregion 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) if (this.czc20x.IsChecked == true)
{ {
tempBGFeatureClass = tempBGAPI.OpenFeatureClass("DLTBBG").FeatureClass; 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}' "; queryFilter.WhereClause = $"sdxz = '3' and nodeid in({nodeid.Substring(0, nodeid.Length - 1)}) and xzqdm='{analysisExport.XZQDM}' ";
else BGFWFcToFc(outsideFeatureClass, tempBGFeatureClass, queryFilter);
queryFilter.WhereClause = "1=1"; }
queryFilter.WhereClause = $"xzqdm='{analysisExport.XZQDM}' ";//河北 else if (this.JCTB.IsChecked == true)
BGFWFcToFc_0813(outsideFeatureClass, tempBGFeatureClass, queryFilter); {
//BGFWFcToFc(outsideFeatureClass, tempBGFeatureClass, queryFilter); queryFilter.WhereClause = $"xzqdm='{analysisExport.XZQDM}' ";//河北
BGFWFcToFc_0813(outsideFeatureClass, tempBGFeatureClass, queryFilter);
}
if (tempBGFeatureClass.FeatureCount(null) == 0) return null; if (tempBGFeatureClass.FeatureCount(null) == 0) return null;
#region 与基础城镇村Union 赋值CZC20属性 #region 与基础城镇村Union 赋值CZC20属性
string templeteGDBPath = System.IO.Path.Combine(SysAppPath.GetCurrentAppPath(), "Template", "TempGDB.gdb"); string templeteGDBPath = System.IO.Path.Combine(SysAppPath.GetCurrentAppPath(), "Template", "TempGDB.gdb");
@ -702,14 +715,16 @@ namespace WpfApp1
} }
else else
{ {
//if (this.overlap.IsChecked == false) if (this.JCTB.IsChecked == true)
// queryFilter.WhereClause = $"sdxz = '3' and nodeid in({nodeid.Substring(0, nodeid.Length - 1)}) and xzqdm='{analysisExport.XZQDM}' "; {
//queryFilter.WhereClause = $" xzqdm='{analysisExport.XZQDM}' ";//山西版本 queryFilter.WhereClause = $"xzqdm='{analysisExport.XZQDM}' ";//河北
//queryFilter.WhereClause = $" sdxz = '3' and xzqdm='{analysisExport.XZQDM}' ";//山西 BGFWFcToFc_0813(outsideFeatureClass, BGFeatureClass, queryFilter);
queryFilter.WhereClause = $"xzqdm='{analysisExport.XZQDM}' ";//河北 }
//else else if (this.GTDCY.IsChecked == true)
// queryFilter.WhereClause = "1=1"; {
BGFWFcToFc_0813(outsideFeatureClass, BGFeatureClass, queryFilter); 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; if (BGFeatureClass.FeatureCount(null) == 0) return null;
CustomIDGParm Parm = new CustomIDGParm(); CustomIDGParm Parm = new CustomIDGParm();
@ -775,6 +790,7 @@ namespace WpfApp1
IWorkspaceAPI BGAPI = null; IWorkspaceAPI BGAPI = null;
IWorkspaceAPI tempBGAPI = null; IWorkspaceAPI tempBGAPI = null;
IWorkspaceAPI ZLAPI = null; IWorkspaceAPI ZLAPI = null;
IWorkspaceAPI outsideWorkspaceAPI = null;
ITable dltbgxTb = null; ITable dltbgxTb = null;
IFeatureLayer MultipartLayer = null; IFeatureLayer MultipartLayer = null;
IFeatureLayer UnionLayer = null; IFeatureLayer UnionLayer = null;
@ -787,10 +803,19 @@ namespace WpfApp1
ThreadParam param = pThreadParm as ThreadParam; ThreadParam param = pThreadParm as ThreadParam;
AnalysisExport analysisExport = param.analysisExport; AnalysisExport analysisExport = param.analysisExport;
#region 初始化工程模版 #region 初始化工程模版
IWorkspaceFactory wsf = new ShapefileWorkspaceFactory();
pWorkspace = wsf.OpenFromFile(analysisExport.ParengFolder, 0); if (analysisExport.FileName.EndsWith(".shp"))
IFeatureWorkspace pFeatureWorkspace = pWorkspace as IFeatureWorkspace; {
outsideFeatureClass = pFeatureWorkspace.OpenFeatureClass(analysisExport.FileName.Replace(".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}"; string temppath = analysisExport.OutputExcelPath + $"\\Temp\\{analysisExport.XZQDM}";
if (!Directory.Exists(temppath)) if (!Directory.Exists(temppath))
{ {
@ -804,17 +829,17 @@ namespace WpfApp1
} }
catch (Exception ex) { } 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 }; JCFeatureLayer = new FeatureLayer() { FeatureClass = JCAPI.OpenFeatureClass("DLTB").FeatureClass };
//复制变更gdb //复制变更gdb
DirectoryCopy(SysAppPath.GetCurrentAppPath() + "Template\\BGDB.gdb", temppath); DirectoryCopy(SysAppPath.GetCurrentAppPath() + "Template\\BGDB.gdb", temppath);
string BGDatabase = System.IO.Path.Combine(temppath, "BGDB.gdb"); 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); GeoDBAPI.SetGeoDatasetSpatialReference(BGAPI.CurrentWorkspace, (JCFeatureLayer.FeatureClass as IGeoDataset).SpatialReference, 0.0001);
//复制增量gdb //复制增量gdb
DirectoryCopy(SysAppPath.GetCurrentAppPath() + "Template\\ZLDB.gdb", temppath); DirectoryCopy(SysAppPath.GetCurrentAppPath() + "Template\\ZLDB.gdb", temppath);
string ZLDatabase = System.IO.Path.Combine(temppath, "ZLDB.gdb"); 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); GeoDBAPI.SetGeoDatasetSpatialReference(ZLAPI.CurrentWorkspace, (JCFeatureLayer.FeatureClass as IGeoDataset).SpatialReference, 0.0001);
DirectoryCopy(SysAppPath.GetCurrentAppPath() + "Template\\BGTJ.sqlite", temppath); DirectoryCopy(SysAppPath.GetCurrentAppPath() + "Template\\BGTJ.sqlite", temppath);
File.Copy(SysAppPath.GetCurrentAppPath() + "Template\\BGTJ.sqlite", temppath + "\\BGTJ.sqlite", true); File.Copy(SysAppPath.GetCurrentAppPath() + "Template\\BGTJ.sqlite", temppath + "\\BGTJ.sqlite", true);
@ -823,11 +848,12 @@ namespace WpfApp1
#endregion #endregion
DirectoryCopy(SysAppPath.GetCurrentAppPath() + "Template\\BGDB.gdb", temppath + "\\temp"); DirectoryCopy(SysAppPath.GetCurrentAppPath() + "Template\\BGDB.gdb", temppath + "\\temp");
string tempBGDatabase = System.IO.Path.Combine(temppath + "\\temp", "BGDB.gdb"); 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); GeoDBAPI.SetGeoDatasetSpatialReference(tempBGAPI.CurrentWorkspace, (JCFeatureLayer.FeatureClass as IGeoDataset).SpatialReference, 0.0001);
IFeatureClassAPI fcAPI = new FeatureClassAPI(outsideFeatureClass); IFeatureClassAPI fcAPI = new FeatureClassAPI(outsideFeatureClass);
IFeatureClassAPI DLTBGXGCAPI = ZLAPI.OpenFeatureClass("DLTBGXGC"); 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(); CustomIDGParm Parm = new CustomIDGParm();
IDGParameter mIDGParm = new IDGParameter(); IDGParameter mIDGParm = new IDGParameter();
@ -879,6 +905,7 @@ namespace WpfApp1
JCAPI?.CloseWorkspace(); JCAPI?.CloseWorkspace();
BGAPI?.CloseWorkspace(); BGAPI?.CloseWorkspace();
ZLAPI?.CloseWorkspace(); ZLAPI?.CloseWorkspace();
outsideWorkspaceAPI?.CloseWorkspace();
} }
} }
@ -926,7 +953,7 @@ namespace WpfApp1
//复制增量gdb //复制增量gdb
DirectoryCopy(SysAppPath.GetCurrentAppPath() + "Template\\ZLDB.gdb", temppath); DirectoryCopy(SysAppPath.GetCurrentAppPath() + "Template\\ZLDB.gdb", temppath);
string ZLDatabase = System.IO.Path.Combine(temppath, "ZLDB.gdb"); 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); GeoDBAPI.SetGeoDatasetSpatialReference(ZLAPI.CurrentWorkspace, (JCFeatureLayer.FeatureClass as IGeoDataset).SpatialReference, 0.0001);
DirectoryCopy(SysAppPath.GetCurrentAppPath() + "Template\\BGTJ.sqlite", temppath); DirectoryCopy(SysAppPath.GetCurrentAppPath() + "Template\\BGTJ.sqlite", temppath);
File.Copy(SysAppPath.GetCurrentAppPath() + "Template\\BGTJ.sqlite", temppath + "\\BGTJ.sqlite", true); File.Copy(SysAppPath.GetCurrentAppPath() + "Template\\BGTJ.sqlite", temppath + "\\BGTJ.sqlite", true);
@ -940,7 +967,7 @@ namespace WpfApp1
#endregion #endregion
DirectoryCopy(SysAppPath.GetCurrentAppPath() + "Template\\BGDB.gdb", temppath + "\\temp"); DirectoryCopy(SysAppPath.GetCurrentAppPath() + "Template\\BGDB.gdb", temppath + "\\temp");
string tempBGDatabase = System.IO.Path.Combine(temppath + "\\temp", "BGDB.gdb"); 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); GeoDBAPI.SetGeoDatasetSpatialReference(tempBGAPI.CurrentWorkspace, (JCFeatureLayer.FeatureClass as IGeoDataset).SpatialReference, 0.0001);
IFeatureClassAPI fcAPI = new FeatureClassAPI(outsideFeatureClass); IFeatureClassAPI fcAPI = new FeatureClassAPI(outsideFeatureClass);
@ -1791,7 +1818,24 @@ namespace WpfApp1
buffer.Value[t_idlbm] = _TBLXConvert.DLBM; 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.InsertFeature(buffer);
} }
T_Cursor.Flush(); T_Cursor.Flush();
@ -2045,7 +2089,11 @@ namespace WpfApp1
#region 流量分析数据为DLTBGXGC层数据 #region 流量分析数据为DLTBGXGC层数据
private void DLTBGXGC_Checked(object sender, RoutedEventArgs e) private void DLTBGXGC_Checked(object sender, RoutedEventArgs e)
{ {
if (DLTBGXGC.IsChecked == true)
{
GTDCY.IsChecked = false;
JCTB.IsChecked = false;
}
} }
#endregion #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 public class ThreadParam
{ {

Loading…
Cancel
Save