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

      

  • 相关阅读:
    [bbk2342] 第47集 Chapter 09Optimizing Sore Perations(02)
    [bbk2345] 第50集 Chapter 12Optimizing Sore Perations(05)
    [bbk2343] 第48集 Chapter 12Optimizing Sore Perations(03)
    [bbk2863] 第54集 Chapter 14Using Oracle Dasta Storage Structures Efficiently(00)
    [bbk2515] 第51集 Chapter 13Using Oracle Blokcs Efficeintly[00]
    [bbk2341] 第46集 Chapter 09Optimizing Sore Perations(01)
    [bbk2863] 第54集 Chapter 13Using Oracle Blokcs Efficeintly[03]
    [bbk2668] 第53集 Chapter 13Using Oracle Blokcs Efficeintly[02]
    [bbk2344] 第49集 Chapter 12Optimizing Sore Perations(04)
    QT 中的模态和非模态对话框
  • 原文地址:https://www.cnblogs.com/gisoracle/p/3888357.html
Copyright © 2011-2022 走看看