内容分为两部分 GPBase 与继承GPBase的GeoDataGPExport,GeoDataGPExport为调用的放方法

GPBase

/***************************Write by Chn gzGISer TstCSDN blog Ricardo.M.Tan**************************/
using ESRI.ArcGIS.esriSystem;
using ESRI.ArcGIS.Geodatabase;
using ESRI.ArcGIS.Geoprocessing;
using ESRI.ArcGIS.Geoprocessor;
using System;
using System.Collections.Generic;
using System.Windows.Forms;namespace Chn.SpatialDataProcessing.GeoDataHelper.Processing {/// <summary>/// gp基类/// </summary>public class GPBase<T> where T : class, new()  {/// <summary>/// gp工具执行者/// </summary>protected Geoprocessor _gp = null;/// <summary>/// gp执行队列/// </summary>protected Queue<IGPProcess> _myGPToolsToExecute = new Queue<IGPProcess>();/// <summary>/// gp基类/// </summary>public GPBase() {_gp = new Geoprocessor();//All results will be written to the users TEMP folder_gp.OverwriteOutput = true;_gp.ToolExecuting += new EventHandler<ToolExecutingEventArgs>(_gp_ToolExecuting);_gp.MessagesCreated += new EventHandler<MessagesCreatedEventArgs>(_gp_MessagesCreated);_gp.ProgressChanged += new EventHandler<ProgressChangedEventArgs>(_gp_ProgressChanged);_gp.ToolExecuted += new EventHandler<ToolExecutedEventArgs>(_gp_ToolExecuted);}private void _gp_ToolExecuting(object sender, ToolExecutingEventArgs e) {IGeoProcessorResult2 gpResult = e.GPResult as IGeoProcessorResult2;/*此处传递自己想传递的消息*/}private void _gp_MessagesCreated(object sender, MessagesCreatedEventArgs e) {IGPMessages gpMsgs = e.GPMessages;if (gpMsgs.Count > 0) {for (int count = 0; count < gpMsgs.Count; count++) {IGPMessage msg = gpMsgs.GetMessage(count);MessageType imageToShow = MessageType.Information;switch (msg.Type) {case esriGPMessageType.esriGPMessageTypeAbort:imageToShow = MessageType.Warning;break;case esriGPMessageType.esriGPMessageTypeEmpty:imageToShow = MessageType.Information;break;case esriGPMessageType.esriGPMessageTypeError:imageToShow = MessageType.Error;break;case esriGPMessageType.esriGPMessageTypeGDBError:imageToShow = MessageType.Error;break;case esriGPMessageType.esriGPMessageTypeInformative:imageToShow = MessageType.Information;break;case esriGPMessageType.esriGPMessageTypeProcessDefinition:imageToShow = MessageType.Information;break;case esriGPMessageType.esriGPMessageTypeProcessStart:imageToShow = MessageType.Information;break;case esriGPMessageType.esriGPMessageTypeProcessStop:imageToShow = MessageType.Information;break;case esriGPMessageType.esriGPMessageTypeWarning:imageToShow = MessageType.Warning;break;default:break;}/*此处传递自己想传递的消息*/}}}private void _gp_ProgressChanged(object sender, ProgressChangedEventArgs e) {IGeoProcessorResult2 gpResult = e.GPResult as IGeoProcessorResult2;if (e.ProgressChangedType == ProgressChangedType.Message) {/*此处传递自己想传递的消息*/}}private void _gp_ToolExecuted(object sender, ToolExecutedEventArgs e) {IGeoProcessorResult2 gpResult = e.GPResult as IGeoProcessorResult2;try {if (gpResult.Status == esriJobStatus.esriJobSucceeded) {/*此处传递自己想传递的消息*/if (_myGPToolsToExecute.Count > 0) {_gp.ExecuteAsync(_myGPToolsToExecute.Dequeue());} else {/*此处传递自己想传递的消息*/}} else if (gpResult.Status == esriJobStatus.esriJobFailed) {/*此处传递自己想传递的消息*/}} catch {throw;}}}
}

GeoDataGPExport:

/***************************Write by Chn gzGISer TstCSDN blog Ricardo.M.Tan**************************/
using ESRI.ArcGIS.Carto;
using System;
using System.Collections.Generic;namespace Chn.SpatialDataProcessing.GeoDataHelper.Processing {/// <summary>/// 地理数据导出/// </summary>public class GeoDataGPExport: GPBase<GeoDataGPExport> {/// <summary>/// 地理数据导出/// </summary>public GeoDataGPExport() :base() {}/// <summary>/// 使用GP工具导出/// </summary>/// <param name="layerList">要素类或要素图层集合</param>/// <param name="exportFolder">到出路径</param>public void gpAsyncExport(List<ILayer> layerList, string exportFolder) {try {layerList.ForEach(layer => {ESRI.ArcGIS.ConversionTools.FeatureClassToShapefile convertToShp = new ESRI.ArcGIS.ConversionTools.FeatureClassToShapefile();convertToShp.Input_Features = layer as IFeatureLayer;convertToShp.Output_Folder = exportFolder;_myGPToolsToExecute.Enqueue(convertToShp);});_gp.ExecuteAsync(_myGPToolsToExecute.Dequeue());} catch (Exception ex) {}}}
}

ArcEngine——使用GP工具导出数据相关推荐

  1. c# 调用ArcEngine的GP工具

    转自原文c# 调用ArcEngine的GP工具,AE调用GP工具 IAoInitialize m_AoInitialize = new AoInitializeClass(); esriLicense ...

  2. 使用sqlplus工具导出数据到csv文件,要求文件带有时间戳

    现业务部门有需求,需要每天定时把数据库里的一些特定数据导出来,最好能以日期命名加以区分存档. 这里选用是oracle的sqlplus工具.理由就是简单快捷高效,可以跨平台,linux和win都可以操作 ...

  3. 往hive表中插入与导出数据方式load ,insert ,sqoop 等方式详解

    往hive数据仓库的表中导入数据,可以直接insert ,也可以选择load方式.当然也可以通过第三方工具如sqoop等将数据导入到hive当初.特别注意:hive虽然不会验证用户装载的数据和表的模式 ...

  4. 使用 Navicat 导出数据表的表结构到 excel

    文章目录 使用 Navicat 工具导出数据表的表结构到 excel 前言 一.方式一 (推荐) 1.使用SQL查询表结构 二.方式二 1.使用SQL直接导出 Excel 文件 总结 前言 在设计数据 ...

  5. Oracle Imp and Exp (导入和导出) 数据 工具使用

    Oracle 提供两个工具imp.exe 和exp.exe分别用于导入和导出数据.这两个工具位于Oracle_home/bin目录下. 导入数据exp 1 将数据库ATSTestDB完全导出,用户名s ...

  6. Navicat工具导出Mysql数据表结构到Excel文件中

    原文链接:https://blog.csdn.net/zt15732625878/article/details/77978266 ---------------------------------- ...

  7. 后羿采集器怎么导出数据_免费爬虫工具:后羿采集器如何采集同花顺圈子评论数据...

    本文主要介绍如何使用后羿采集器的智能模式,免费采集同花顺圈子首页短评的发布时间.发布内容.作者及阅读量等信息. 采集工具简介: 后羿采集器是一款基于人工智能技术的网络爬虫软件,只需要输入网址就能够自动 ...

  8. Go Dumpling! 让导出数据更稳定丨TiDB 工具

    前言 Dumpling 是由 Go 语言编写的用于对数据库进行数据导出的工具.目前支持 MySQL 协议的数据库,并且针对 TiDB 的特性进行了优化.在 Go Dumpling! 让导出数据更容易  ...

  9. python mysql导出到excel_python:mysql导出数据到excel工具方法

    近期肺炎严重,春节期间都在家闭关,闲暇时间捡起了之前学习的python,刚好最近在项目上处理大批量数据,从数据库导出数据效率比较低,就想通过python实现导出,结果效率果然很高,基本5-10秒内就导 ...

最新文章

  1. 戏说Linux商用数据库
  2. CEF3开发者系列之CEF3入门
  3. 【小白学习keras教程】三、Kears中常见模型层Padding、Conv2D、MaxPooling2D、Flatten和Dense
  4. LINQ学习(四):From子句
  5. 百度十亿级流量的搜索前端,是怎么做架构升级的?
  6. 一个很好的反选的例子
  7. 尺取法---poj3601
  8. 手把手搭建一个属于自己的在线 IDE
  9. 882. Reachable Nodes In Subdivided Graph
  10. 网络中的延迟和抖动问题
  11. java后台生成二维码以及页面显示二维码方式
  12. 【Unity2D】制作可以左右移动的平台
  13. 为什么C++被公认为是最难的语言?
  14. Linux 磁盘管理(RAID)--第五章
  15. Linux应用程序后台运行
  16. qcc300x开发调试笔记
  17. 基于ssm的流浪猫狗救助网站(包含数据库、完美运行、可远程调试)
  18. 正确打开adams软件_adams软件在工程机械系统仿真中的应用案例.ppt
  19. Java语法手册 一
  20. 成型滤波器设计matlab,MATLAB+VHDL脉冲成型滤波器的设计 附代码

热门文章

  1. PTGui+PS生成全景图
  2. C# 动态 条件 组合_3D模型+平滑,在PPT中实现动态呈现
  3. Android群英传知识点回顾——第四章:ListView常用优化技巧
  4. 计算机网络之数据链路层局域网、以太网及其PPP协议HDLC协议【408_4】
  5. html5 3d全景代码,HTML5教程 三维全景详解
  6. SLM.rar_SLM 相位_slm matlab_叉形光栅matlab_涡旋相位_计算全息
  7. ERROR 1366 (HY000): Incorrect string value: '\xD5\xC5\xD0\xA1\xC3\xF7' for column 'NAME' at row 1解决方
  8. HDFS Erasure Coding
  9. 和12岁小同志搞创客开发:遥控舵机
  10. 【Wiki】XWiki安装教程_War包版本