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

  

ArcGIS 投影转换(AE)

时间: 2024-10-29 00:11:15

ArcGIS 投影转换(AE)的相关文章

J2EE(java)后台调用ArcGIS Engine(AE)的部署和代码

arcgis的BS开发解决方案一直是个坑,主推的地图服务查询速度慢,需要异步,功能少.相对来说主要用于CS的AE功能更强大全面,只是部署有点复杂 本文软件环境: win7 sp1 64位 MyEclipse 10,jdk 1.6.45 32位,tomcat 6.0.41 32位,ArcGIS Desktop 10.0(或ArcGIS Engine) 1.1.1.   安装软件 ArcGIS Desktop或ArcGIS Engine Runtime 建议装desktop,因为AE Runtime

ARCGIS对谷歌影像进行投影转换

原文:ARCGIS对谷歌影像进行投影转换 相信有不少同学会有这样的困扰,通过软件下载的谷歌遥感影像,直接用ARCGIS等专业软件打开之后发现,遥感影像有拉伸的情况,这是什么原因呢.那是因为,通过软件下载下来的遥感影像的投影信息包含的是经纬度信息,而在ARCGIS等专业软件默认的投影信息包含的是坐标信息,如果不将经纬度转换成坐标,自然会出现拉伸的情况.本帖针对这一情况来告诉同学们如何进行经纬度与坐标之间的转换以消除其带来的拉伸影响. 本帖需要用的软件工具有2个,第一款要用的软件是locaspace

ArcGIS中的坐标系统定义与投影转换(转)

ArcGIS中的坐标系统定义与投影转换 ArcGIS中的坐标系统定义与投影转换 坐标系统是GIS数据重要的数学基础,用于表示地理要素.图像和观测结果的参照系统,坐标系统的定义能够保证地理数据在软件中正确的显示其位置.方向和距离,缺少坐标系统的GIS数据是不完善的,因此在ArcGIS软件中正确的定义坐标系统以及进行投影转换的操作非常重要. 1.     ArcGIS中的坐标系统 ArcGIS中预定义了两套坐标系统,地理坐标系(Geographic coordinate system)和投影坐标系(

ArcGIS教程:ArcGIS中图层添加投影及投影转换

由于GIS描述的是位于地球表面的空间信息,所以在表示时必须嵌入到一个空间参照系中,这个参照系就是坐标系它是根据椭球体等参数建立的.我国目前所用到的三种主要坐标系是:北京1954.西安1980及WGS84. 有了坐标系,即椭球体,数据图层就有了地理坐标,地理坐标是用经纬度表示球面的位置的.为了能够将地图从三维地理坐标通过投影转换成二位平面坐标,还要进行投影,这样的坐标系叫做投影坐标系.常用的投影有高斯-克吕格(Gauss-Kruger)投影,阿尔博斯(Albers Equal-Area Conic

ArcGIS中的坐标系统定义与投影转换

坐标系统是GIS数据重要的数学基础,用于表示地理要素.图像和观测结果的参照系统,坐标系统的定义能够保证地理数据在软件中正确的显示其位置.方向和距离,缺少坐标系统的GIS数据是不完善的,因此在ArcGIS软件中正确的定义坐标系统以及进行投影转换的操作非常重要. 1. ArcGIS中的坐标系统 ArcGIS中预定义了两套坐标系统,地理坐标系(Geographic coordinate system)和投影坐标系(Projectedcoordinate system). 1.1 地理坐标系 地理坐标系

arcgis AE删除SDE featureClass数据

//删除SDE图层         public static bool DeleteSDELayer(ESRI.ArcGIS.Geodatabase.IWorkspace m_pWorkspace, string SDEDSname )         {             try             {                 ESRI.ArcGIS.Geodatabase.IEnumDatasetName pEnumDsName = m_pWorkspace.get_Da

AE常见接口之间的关系(较笼统)+arcgis常见概念

常见的接口有如下关系 IworkspaceFactory-------------->IworkSpace------------------>IfeatureWorkSpace ---------------->IFeatrueClass------------->IFeature() |                                       | |                                       | |             

利用C#与AE调用GP工具

转自原文 利用C#与AE调用GP工具 第一,首先要明确自己需要调用arctoolbox里面的什么工具,实现什么样的功能. 第三,编写command或tool工具,编写自己要的功能工具. 1)首先创建一个工程. 3)定义工具的名称等信息 public Kriging() { base.m_category = "GPTools"; base.m_caption = "克吕金插值"; base.m_message = "克吕金插值"; base.m_

ArcGIS Engine中正确释放打开资源

转自原文 ArcGIS Engine中正确释放打开资源 AE中对MDB,SDE等数据库操作时,打开后却往往不能及时释放资源,导致别人操作提示对象被锁定. 很多帖子说了很多原理,看的也烦且不实用,比如一句话概括的用System.Runtime.InteropServices.Marshal.ReleaseComObject(object o)释放,说的很不清楚,很多人试过觉的释放不掉. 事实上,的确是用该方法,但释放的技巧在于,新建几个AE对象就要逐步释放几个,例如: IWorkspaceFact