ArcEngine——使用GP工具导出数据
内容分为两部分 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工具导出数据相关推荐
- c# 调用ArcEngine的GP工具
转自原文c# 调用ArcEngine的GP工具,AE调用GP工具 IAoInitialize m_AoInitialize = new AoInitializeClass(); esriLicense ...
- 使用sqlplus工具导出数据到csv文件,要求文件带有时间戳
现业务部门有需求,需要每天定时把数据库里的一些特定数据导出来,最好能以日期命名加以区分存档. 这里选用是oracle的sqlplus工具.理由就是简单快捷高效,可以跨平台,linux和win都可以操作 ...
- 往hive表中插入与导出数据方式load ,insert ,sqoop 等方式详解
往hive数据仓库的表中导入数据,可以直接insert ,也可以选择load方式.当然也可以通过第三方工具如sqoop等将数据导入到hive当初.特别注意:hive虽然不会验证用户装载的数据和表的模式 ...
- 使用 Navicat 导出数据表的表结构到 excel
文章目录 使用 Navicat 工具导出数据表的表结构到 excel 前言 一.方式一 (推荐) 1.使用SQL查询表结构 二.方式二 1.使用SQL直接导出 Excel 文件 总结 前言 在设计数据 ...
- Oracle Imp and Exp (导入和导出) 数据 工具使用
Oracle 提供两个工具imp.exe 和exp.exe分别用于导入和导出数据.这两个工具位于Oracle_home/bin目录下. 导入数据exp 1 将数据库ATSTestDB完全导出,用户名s ...
- Navicat工具导出Mysql数据表结构到Excel文件中
原文链接:https://blog.csdn.net/zt15732625878/article/details/77978266 ---------------------------------- ...
- 后羿采集器怎么导出数据_免费爬虫工具:后羿采集器如何采集同花顺圈子评论数据...
本文主要介绍如何使用后羿采集器的智能模式,免费采集同花顺圈子首页短评的发布时间.发布内容.作者及阅读量等信息. 采集工具简介: 后羿采集器是一款基于人工智能技术的网络爬虫软件,只需要输入网址就能够自动 ...
- Go Dumpling! 让导出数据更稳定丨TiDB 工具
前言 Dumpling 是由 Go 语言编写的用于对数据库进行数据导出的工具.目前支持 MySQL 协议的数据库,并且针对 TiDB 的特性进行了优化.在 Go Dumpling! 让导出数据更容易 ...
- python mysql导出到excel_python:mysql导出数据到excel工具方法
近期肺炎严重,春节期间都在家闭关,闲暇时间捡起了之前学习的python,刚好最近在项目上处理大批量数据,从数据库导出数据效率比较低,就想通过python实现导出,结果效率果然很高,基本5-10秒内就导 ...
最新文章
- 戏说Linux商用数据库
- CEF3开发者系列之CEF3入门
- 【小白学习keras教程】三、Kears中常见模型层Padding、Conv2D、MaxPooling2D、Flatten和Dense
- LINQ学习(四):From子句
- 百度十亿级流量的搜索前端,是怎么做架构升级的?
- 一个很好的反选的例子
- 尺取法---poj3601
- 手把手搭建一个属于自己的在线 IDE
- 882. Reachable Nodes In Subdivided Graph
- 网络中的延迟和抖动问题
- java后台生成二维码以及页面显示二维码方式
- 【Unity2D】制作可以左右移动的平台
- 为什么C++被公认为是最难的语言?
- Linux 磁盘管理(RAID)--第五章
- Linux应用程序后台运行
- qcc300x开发调试笔记
- 基于ssm的流浪猫狗救助网站(包含数据库、完美运行、可远程调试)
- 正确打开adams软件_adams软件在工程机械系统仿真中的应用案例.ppt
- Java语法手册 一
- 成型滤波器设计matlab,MATLAB+VHDL脉冲成型滤波器的设计 附代码
热门文章
- PTGui+PS生成全景图
- C# 动态 条件 组合_3D模型+平滑,在PPT中实现动态呈现
- Android群英传知识点回顾——第四章:ListView常用优化技巧
- 计算机网络之数据链路层局域网、以太网及其PPP协议HDLC协议【408_4】
- html5 3d全景代码,HTML5教程 三维全景详解
- SLM.rar_SLM 相位_slm matlab_叉形光栅matlab_涡旋相位_计算全息
- ERROR 1366 (HY000): Incorrect string value: '\xD5\xC5\xD0\xA1\xC3\xF7' for column 'NAME' at row 1解决方
- HDFS Erasure Coding
- 和12岁小同志搞创客开发:遥控舵机
- 【Wiki】XWiki安装教程_War包版本