ArcGIS 投影转换(AE)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 | private void btnOK_Click( object sender, EventArgs e) { try { CheckError(); this .checkEdit1.Enabled = false ; checkEdit1.Checked = false ; this .Cursor = Cursors.WaitCursor; IGeoProcessorResult result = null ; ESRI.ArcGIS.Geoprocessor.Geoprocessor gp = new Geoprocessor(); gp.OverwriteOutput = true ; if (btnEdit1.Text.Contains( ".shp" )) { if (File.Exists(btnEdit3.Text)) { if (MessageBox.Show( "文件已存在,是否删除" , "提示" , MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes) { IWorkspaceFactory pwsf = new ShapefileWorkspaceFactoryClass(); IWorkspace pws = pwsf.OpenFromFile(System.IO.Path.GetDirectoryName(btnEdit3.Text), 0); App_CORE.EngineAPI.WorkspaceFunction.DeleteDataset1(pws, System.IO.Path.GetFileName(btnEdit3.Text), "featureclass" ); } else { btnEdit3.Text = "" ; this .Cursor = Cursors.Default; return ; } } ESRI.ArcGIS.DataManagementTools.Project pPro = new ESRI.ArcGIS.DataManagementTools.Project(); pPro.in_dataset = btnEdit1.Text; pPro.in_coor_system = this .importSR; pPro.out_dataset = btnEdit3.Text; pPro.out_coor_system = this .exportSR; pPro.transform_method = comboBoxEdit1.Text; result = (IGeoProcessorResult)gp.Execute(pPro, null ); } else { if (File.Exists(btnEdit3.Text)) { if (XtraMessageBox.Show( "文件已存在,是否删除" , "提示" , MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes) { IWorkspaceFactory pwsf = new RasterWorkspaceFactoryClass(); IWorkspace pws = pwsf.OpenFromFile(System.IO.Path.GetDirectoryName(btnEdit3.Text), 0); App_CORE.EngineAPI.WorkspaceFunction.DeleteDataset(pws, System.IO.Path.GetFileName(btnEdit3.Text), "RasterDataset" ); } else { btnEdit3.Text = "" ; this .Cursor = Cursors.Default; return ; } } ProjectRaster pProject = new ProjectRaster(); pProject.in_raster = btnEdit1.Text; pProject.in_coor_system = this .importSR; pProject.out_raster = btnEdit3.Text; pProject.out_coor_system = this .exportSR; pProject.geographic_transform = comboBoxEdit1.Text; result = (IGeoProcessorResult)gp.Execute(pProject, null ); } this .Cursor = Cursors.Default; if (result == null ) { string xx = "" ; for ( int i = 0; i < gp.MessageCount; i++) xx += gp.GetMessage(i); XtraMessageBox.Show( "投影转换失败,原因为:" + xx, "提示" ); return ; } ESRI.ArcGIS.ADF.ComReleaser.ReleaseCOMObject(result); ESRI.ArcGIS.ADF.COMSupport.AOUninitialize.Shutdown(); System.Runtime.InteropServices.Marshal.ReleaseComObject(result); result = null ; XtraMessageBox.Show( "成功" , "提示" ); this .checkEdit1.Enabled = true ; } catch (Exception ex) { this .Cursor = Cursors.Default; MessageBox.Show(ex.Message, "提示" ); } } |
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· winform 绘制太阳,地球,月球 运作规律
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
2012-08-03 云南云测采用本人开发所有权辅助建库软件,获得好评