GeoProcessor的使用方法

摘要:
GP对象privatestaticGeoProcessor2GP=newGeoProcessorClass()//的定义使用ESRI.ArcGIS.Geoprocessing;privatestaticGeoprocessorGP=newGeoprocessor();//使用ESRI.ArcGIS.Geoprocessor;//1-定义GeoProcessor对象Geoprocess

GP对象的定义

private static IGeoProcessor2 GP = new GeoProcessorClass(); // using ESRI.ArcGIS.Geoprocessing;

private static Geoprocessor GP = new Geoprocessor(); // using ESRI.ArcGIS.Geoprocessor;

//1-定义GeoProcessor对象

Geoprocessor gp = new Geoprocessor();

//2-设置参数
gp.OverwriteOutput = true;
//3-设置工具箱所在的路径
gp.AddToolbox(@"F:lib_testAirportsAndGolf.tbx");
//4-设置输入参数
IVariantArray parameters = new VarArrayClass();
parameters.Add(@"F:lib_test地下水重金属数据.xlsSheet1$");
//5-执行工具
gp.Execute("ModelAnalysis", parameters, null);

【缓冲区】

Geoprocessor GP = new Geoprocessor();
GP.OverwriteOutput = true;
ESRI.ArcGIS.AnalysisTools.Buffer bufferTool = new ESRI.ArcGIS.AnalysisTools.Buffer();
bufferTool.in_features = @"E:**系统AppsDataXZQ行政区.mdbSHENGJXZQ";//输入路径

bufferTool.out_feature_class = @"E:**系统AppsDataXZQ行政区.mdbaa";//输出路径

bufferTool.buffer_distance_or_field = "SHDM";//融合字段
GP.Execute(bufferTool, null);//执行工具

【合并】

Geoprocessor geoprocessor = new Geoprocessor();
geoprocessor.OverwriteOutput = true;
ESRI.ArcGIS.AnalysisTools.Union union = new ESRI.ArcGIS.AnalysisTools.Union();
IGpValueTableObject gpValueTableObject = new GpValueTableObjectClass();//对两个要素类进行相交运算
gpValueTableObject.SetColumns(2);
object o1 = @"E:***AppsDataXZQArcCatalogTest.mdbTestss";//输入IFeatureClass 1
object o2 = @"E:***AppsDataXZQArcCatalogTest.mdbTestTestClass";//输入IFeatureClass 2
gpValueTableObject.AddRow(ref o1);
gpValueTableObject.AddRow(ref o2);
union.in_features = gpValueTableObject;
union.out_feature_class = @"E:***AppsDataXZQ行政区.mdbaaa";
geoprocessor.Execute(union, null);

IWorkspaceFactory pWorkspaceFactory;
IFeatureWorkspace pFeatureWorkspace;
IFeatureLayer pFeatureLayer;

string pFullPath = @"E:***数据库管理系统AppsDataXZQArcCatalogTest.mdbaa";
if (pFullPath == "") return;
int pIndex = pFullPath.LastIndexOf("\");
string pFilePath = pFullPath.Substring(0, pIndex); //文件路径
string pFileName = pFullPath.Substring(pIndex + 1); //文件名

//实例化ShapefileWorkspaceFactory工作空间,打开Shape文件
pWorkspaceFactory = new ShapefileWorkspaceFactory();
pFeatureWorkspace = (IFeatureWorkspace)pWorkspaceFactory.OpenFromFile(pFilePath, 0);
//创建并实例化要素集
IFeatureClass pFeatureClass = pFeatureWorkspace.OpenFeatureClass(pFileName);
pFeatureLayer = new FeatureLayer();
pFeatureLayer.FeatureClass = pFeatureClass;
pFeatureLayer.Name = pFeatureLayer.FeatureClass.AliasName;
axMapControl1.AddLayer(pFeatureLayer);

【获取运行结果】

   Geoprocessor对象通过Execute方法执行后将结果保存到指定输出路径下,通过也可以通过IGeoProcessorResult接口读取存储在内容中的结果对象,C#代码如下:

     //执行图层求交运算

    GeoProcessorResult pResult = (IGeoProcessorResult)gp.Execute(pIntersect, null);

     IGPUtilities pGPUtil = new GPUtilitiesClass();

            IFeatureClass pFC;
            IQueryFilter pQF;
            pGPUtil.DecodeFeatureLayer(pResult.GetOutput(0),out pFC,out pQF);
            int count = pFC.FeatureCount(null);      //统计Feature对象个数
            IFeatureCursor pCursor = pFC.Insert(true);   //提取FeatureCursor对象
            IFeatureLayer pFeatureLayer = new FeatureLayerClass();
            pFeatureLayer.FeatureClass = pFC;
            m_mapControl.Map.AddLayer(pFeatureLayer);   //加载图层对象

免责声明:文章转载自《GeoProcessor的使用方法》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇ahocorasick使用asp.net多线程(收藏)下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

ARCGIS10.5安装教程(附完整安装包和汉化包)

2017年7月,Esri公司发布了arcgis10.5.1版本,该版本的整体界面风格延续了10.0版本的界面风格,新功能介绍详见 http://www.3snews.net/column/252000046848.html 本帖详述10.5的安装步骤,并附上10.5完整安装文件。 百度网盘地址:链接:https://pan.baidu.com/s/1bqF...

ArcGIS Server GP服务使用常见错误总结

ArcGIS GP服务问题列表 输入参数错误 在使用GP服务时,从创建模型到发布服务,再到调用服务,整个过程都需要注意输入参数和输出参数的问题。GP服务支持的输入和输出参数可详见 http://help.arcgis.com/zh-cn/arcgisdesktop/10.0/help/index.html#/na/00530000001n000000/ 如...

arcengine 开发经典帖 【强烈推荐仔细研读】

转自原文 arcengine 开发经典帖 使用ArcGIS Engine 开发自定义GIS应用:第一部分:使用ArcGIS Engine 发布自定义GIS应用软件-全面了解ArcGIS Engine的产品。第二部分:ArcEngine9.2的新特性及变化、(续)--类对比及变化、(续)--(代码转换插件)、(续)--ArcEngine新命令,工具、菜单...

ArcGIS Server服务状态正在停止。。。问题BUG解决

1、ArcGIS Server服务器出现服务问题:ArcGIS Server Manager的所有服务显示为“正在停止……“。 2、N种解决方式 1)端口占用问题。4000-4002端口被其他程序占用过,导致服务无法正常启动。 可以通过CMD查找相关PID被占用的端口,停掉,再启动GIS服务即可; 也可以手动改为安装目录下的D:\Program Files...

ArcGIS 10 安装程序及破解文件

1、下载 ArcGIS 10 安装程序及破解文件 后面提供电驴的下载地址(可以使用迅雷、QQ旋风等下载工具下载),下载文件是一个光盘镜像文件:‍ArcGIS_Desktop10_122519.iso。 2、进行 ArcGIS 10 的安装 首先确保系统已安装 .NET Framework 3.5 SP1,如果没有安装去微软官网下载安装,地址:.NET Fr...

ESRI系列产品报价表(ArcGIS 9.2系列)

ESRI系列产品报价表(ArcGIS 9.2系列) 1        ArcIMS        ArcIMS V9.2 Server License (Up to 2 Sockets, max 2 cores per socket). 12 Month Software Maintenace Service.        167,000.00 2    ...