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

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

  1. ArcGIS 投影转换(AE)

    private void btnOK_Click(object sender, EventArgs e) { try { CheckError(); this.checkEdit1.Enabled = ...

  2. AE实现投影定义和投影转换

    添加引用ESRI.ArcGIS.DataManagementTools 1.获取要定义和要转换的投影 IWorkspaceFactory wsf = new ShapefileWorkspaceFac ...

  3. 利用AE编写切图工具的一些探讨

    文章版权由作者李晓晖和博客园共有,若转载请于明显处标明出处:http://www.cnblogs.com/naaoveGIS/. 1.前言 这周利用晚上在家时间研究了下如何使用AE来开发切图工具.最初 ...

  4. 一款批量修改AE模板的工具

    一.需求分析 对于视频后期剪辑及相关从业人员来说,AE(After Effects)模板效果是一个不错的开始点.在模板效果的基础上,可以很快的做出各种炫酷的后期效果.但是在网上下载的模板工程中,往往包 ...

  5. ArcGIS中的坐标系统定义与投影转换【转】

    ArcGIS中的坐标系统定义与投影转换 坐标系统是GIS数据重要的数学基础,用于表示地理要素.图像和观测结果的参照系统,坐标系统的定义能够保证地理数据在软件中正确的显示其位置.方向和距离,缺少坐标系统 ...

  6. AE影视后期之跳跃音符制作

    制作跳动音符 新建项目 a.打开AE b.新建项目打开一张图片 c.新建合成将图片拖动到左下角的合成面板 新建文本图层. a.找到图层选项里面的新建text b.在里面输入IIIIIIIIIIIIII ...

  7. AE开发使用内存图层

    AE开发中,有时需要从磁盘中读取一些文件信息如坐标点转为图层并进行分析,此过程并不需要坐标点入库之类的操作,就可以创建一个内存图层解决问题.创建内存图层需要用到InMemoryWorkspaceFac ...

  8. AE开发能否实现TOC Control里添加多个Data Frame

    问题: 在ArcMap中,菜单Insert下Data Frame,可以在TOC中增加Data Frame,在MapControl或者PageLayoutControl下都可以正常显示多个Data Fr ...

  9. C#+ AE 注意问题汇总(不断更新)

    1.AE的COM对象释放问题尤其是IFeatureCursor 建议用 ESRI.ArcGIS.ADF.ComReleaser.ReleaseCOMObject(pObj); 或者 int iRefs ...

随机推荐

  1. 阿里云mariadb无法启动问题

    需要再安装yum install mariadb-server就可以了, 重启服务器,使用命令 sudo systemctl start mariadb.service

  2. C++模拟实现JDK中的ArrayList和LinkedList

    Java实现ArrayList和LinkedList的方式采用的是数组和链表.以下是用C++代码的模拟: 声明Collection接口: #ifndef COLLECTION_H_ #define C ...

  3. XPlane android 2D手游开发实战

    android 飞行射击游戏类 采用 xamarin 跨平台开发技术  纯C#语言编写 操作简单 1.手指拖动飞机 躲避敌机 2.通过吃敌机爆炸后遗落的物品增加各种属性 3.双击战机放大技能 4.目前 ...

  4. python :开关,开灯关灯

    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/ ...

  5. 不写完不回家的TreeSet

    TreeSet详解 继承架构图: |——SortedSet接口——TreeSet实现类 Set接口——|——HashSet实现类                  |——LinkedHashSet实现 ...

  6. 常用正则表达式大全,手机、电话、邮箱、身份证(最严格的验证)、IP地址、网址、日期等

    <script type="text/javascript">/* * 手机号码格式 * 只允许以13.15.18开头的号码 * 如:13012345678.15929 ...

  7. Organize Your Train part II-POJ3007模拟

    Organize Your Train part II Time Limit: 1000MS Memory Limit: 65536K Description RJ Freight, a Japane ...

  8. [Linux] Nginx networking 403 Forbidden 静态文件不允许查看

    nginx 的 403 Forbidden errors 表示你在请求一个资源文件但是nginx不允许你查看. 403 Forbidden 只是一个HTTP状态码,像404,200一样不是技术上的错误 ...

  9. css-position

    值 描述 absolute 生成绝对定位的元素,相对于 static 定位以外的第一个父元素进行定位. 元素的位置通过 "left", "top", " ...

  10. 阅读笔记 火球UML大战需求分析3

    在复习回顾的以前所学的UML 统一建模语言之后,要将他们融会贯通起来,必定要进行一次事件,这样才能更好地运用各种UML,所以,了解了所有的UML图之后,就要开始接收一个练习的项目了. 这里作者给的例子 ...