zoukankan      html  css  js  c++  java
  • GeoProcessor的使用方法

    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);   //加载图层对象

  • 相关阅读:
    T-SQL 关闭数据库所有连接
    单页web应用(SPA)的简单介绍
    ES6—解构赋值
    ES6 — 新增关键字let、const
    一行能装逼的JavaScript代码
    Date 对象总结
    JS从头开始
    CSS基础知识点(二)——居中
    web标准的可用性和可访问性
    CSS基础知识点(二)——选择器
  • 原文地址:https://www.cnblogs.com/wgj-blog/p/12131823.html
Copyright © 2011-2022 走看看