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. 12
      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
//{
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;
//}

@ -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)
{

@ -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:获取年初城镇村等用地数据失败!");

@ -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<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 T_Cursor = null;

@ -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:获取年初城镇村等用地数据失败!");

@ -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]);

@ -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">
<Grid Background="White">
<Grid>
<Grid.ColumnDefinitions>
@ -25,7 +25,7 @@
<Grid.RowDefinitions>
<RowDefinition Height="50"/>
<!--<RowDefinition Height="50"/>-->
<RowDefinition Height="100"/>
<RowDefinition Height="150"/>
<!--<RowDefinition Height="40"/>-->
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
@ -38,7 +38,7 @@
<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.RowDefinitions>
<RowDefinition Height="100"/>
<RowDefinition Height="150"/>
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="100"/>
@ -57,9 +57,24 @@
<StackPanel Orientation="Horizontal">
<CheckBox x:Name="czc20x" Content="根据20X赋值:" Checked="czc20x_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">
<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">
<CheckBox x:Name="DLTBGX" Content="增量数据(DLTBGX):" Checked="DLTBGX_Checked" VerticalContentAlignment="Center" Margin="20,0" IsChecked="False" />
</StackPanel>-->

@ -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
{

Loading…
Cancel
Save