zoukankan      html  css  js  c++  java
  • ArcGIS 投影转换(AE)

    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, "提示");
                }
            }
    

      

  • 相关阅读:
    【codevs1690】开关灯 (线段树 区间修改+区间求和 (标记))
    【codevs1191】数轴染色 (线段树 区间修改+固定区间查询)
    【机器学习】李航 统计学习方法 知识点总结
    【机器学习】生成模型 判别模型
    【机器学习】贝叶斯定理、精准推断、最大似然估计、连续特征参数估计、EM算法
    python queue 讲解
    【tensorflow】 CNN卷积神经网络原理讲解+图片识别应用(附源码)
    URL解析过程
    Python 可迭代对象迭代器生成器的区别
    【Linux】 修改主机名
  • 原文地址:https://www.cnblogs.com/gisoracle/p/3888357.html
Copyright © 2011-2022 走看看