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. 取字符串拼音首字母(js)

    //取字符串拼音首字母 function makePy(str) { if (typeof(str) != "string") throw new Error(-1, " ...

  2. 在jquery的ajax中添加自定义的header信息

    转自网络 1 $.ajax({ type: "POST", url: "http://192.168.0.88/action.cgi?ActionID=WEB_Reque ...

  3. [课程设计]Sprint Three 回顾与总结&发表评论&团队贡献分

    Sprint Three 回顾与总结&发表评论&团队贡献分 ● 一.回顾与总结 (1)回顾 燃尽图: Sprint计划-流程图: milestones完成情况如下: (2)总结 本次冲 ...

  4. flag+文件操作

    flag标志位,标识位,在其他语言中可能叫开关,个人觉得当作开关更容易理解.下面我们来利用这个开关来控制文件操作的流程,从而优雅的修改配置文件. global log 127.0.0.1 local2 ...

  5. wpf直接绑定xml生成应用程序

    目的:在vs2010下用wpf完成一个配置工具,配置文件为xml格式,xml文件作为数据源,直接和wpf前台绑定,生成exe后,运行exe能够加载同路径下的xml配置文件并显示 xml文件在项目中的设 ...

  6. 向STM32 CUBE MX 生成的工程里移植stemwin

    我参考这个文章做的: http://bbs.armfly.com/read.php?tid=1678 这次添加的是没有os的版本 另外跟用不用hal库没关系 1. keil自带了emwin 2. 用c ...

  7. c++多线程の数据竞争和互斥对象

    看两个代码: void function() { ;i>;i--) { cout<<"from sub thread"+i<<endl; } } vo ...

  8. 关于Markdown

    之前有接触过一点markdown,知道能生成好看的排版,只是太懒都不去看不去记那些标签 现在才发现它简单好用得有点伟大 一个在线的Markdown编辑器:https://stackedit.io/ed ...

  9. R语言读写中文编码方式

    最近遇到一个很头疼的事,就是 R语言读写中文编码方式.在网上找到了一篇博文,谢谢博主的精彩分享,让我很快解决了问题,在此也分享一下 R语言读写数据的方法很多,这里主要是我在使用read.csv/rea ...

  10. IE11 HTML Help ActiveX

    <!--by: @qab--> <OBJECT id=HHCTRL type="application/x-oleobject" classid="cl ...