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