ArcEngine GP工具使用实例

版本为ArcEngine10.1

1、Analysis Tools–OverLay 相交Intersect工具实例

Geoprocessor geoprocessor = new Geoprocessor();
geoprocessor.OverwriteOutput = true;
ESRI.ArcGIS.AnalysisTools.Intersect intersect = new ESRI.ArcGIS.AnalysisTools.Intersect();
IGpValueTableObject gpValueTableObject = new GpValueTableObjectClass();//对两个要素类进行相交运算
gpValueTableObject.SetColumns(2);
object o1 = featureClass1;//输入IFeatureClass 1 
object o2 = featureClass2;//输入IFeatureClass 2 
gpValueTableObject.AddRow(ref o1);
gpValueTableObject.AddRow(ref o2);
intersect.in_features = gpValueTableObject;
intersect.out_feature_class = @”shp存放路径\test.shp”;
geoprocessor.Execute(intersect, null);

2、DataManager Tools–Generalization 融合Dissolve工具实例  融合多个字段
Geoprocessor geoprocessor = new Geoprocessor();
geoprocessor.OverwriteOutput = true;
ESRI.ArcGIS.DataManagementTools.Dissolve dissolve = new ESRI.ArcGIS.DataManagementTools.Dissolve();
dissolve.in_features = GBTBfeatureClass;
IGpValueTableObject pObject = new GpValueTableObjectClass();//对多个字段进行融合添加
pObject.SetColumns(1);
pObject.AddRow(“字段1”);
pObject.AddRow(“字段2”);
pObject.AddRow(“字段3”);
dissolve.dissolve_field = pObject;
dissolve.out_feature_class = @”shp存放路径\test.shp”;
geoprocessor.Execute(dissolve, null);

3、DataManager Tools–Fields 添加字段addField工具实例 添加两个字段
Geoprocessor geoprocessor = new Geoprocessor();
geoprocessor.OverwriteOutput = true;
ESRI.ArcGIS.DataManagementTools.AddField addField = new ESRI.ArcGIS.DataManagementTools.AddField();
addField.in_table = table;//ITable类型参数
addField.field_name = “字段1”;
addField.field_type = “TEXT”;
addField.field_length = 200;
AddField addField2 = new AddField();
addField2.in_table = table2;//ITable类型参数
addField2.field_name = “字段2”;
addField2.field_type = “TEXT”;
addField2.field_length = 50;
geoprocessor.Execute(addField, null);

geoprocessor.Execute(addField2, null);

GP执行错误捕捉:

Geoprocessor gp = new Geoprocessor();
try
    {
        ……..
        gp.Execute(“CreateFeatureDataset_management”, parameters, null);
    }
    catch (Exception ex)
    {
        object sev = null;
        string msgs = gp.GetMessages(ref sev);
    }

参:http://www.cnblogs.com/zhangjun1130/archive/2010/05/26/1744472.html

http://resources.arcgis.com/en/help/arcobjects-net/conceptualhelp/index.html#/Using_ArcObjects_as_tool_input/00010000041n000000/

转载自:https://blog.csdn.net/u013751758/article/details/73200920

You may also like...