zoukankan      html  css  js  c++  java
  • ArcEngine开发——调用GeoProcessing工具

      ArcGIS中,每一个地理处理工具箱都是以一个托管程序集来表示的。这些托管程序集位于ArcGIS安装路径的\Dotnet\Toolboxes文件夹下。每一个工具箱程序集里都有很多的类,用不同的类来表示标准标准ArcGIS地理处理工具箱里对应的地理处理工具。在应用程序开发过程中,可以使用这些程序集中的类来建立并通过ArcEngine中的geoprocessor这个类来运行地理处理工具。

      建立GP工具

      建立一个地理处理类的实例,设定它的参数内容来指定该工具的输入项。必须保证所有被标记为规定参数的参数项都被正确的指定,除此之外,也可以指定被标记为可选参数的参数项。为了简化操作,每一个类都重载有一个具备多参数的构造函数,仅仅在一行代码中,就可以用所要求的参数来初始化所创建的地理处理工具。

      下面的示例代码演示了如何创建Erase工具,然后设置其参数:

    using ESRI.ArcGIS.Geoprocessor;
    using ESRI.ArcGIS.AnalysisTools;
    
    public void SampleEraseTool_1()
    {
    
        // 创建geoprocessor的实例
        Geoprocessor GP = new Geoprocessor();
        Erase eraseTool = new Erase(@"C:\Data\Input.shp", @"C:\Data\Erase.shp", @
            "C:\Data\Output.shp");
    
        // TODO: Add your code here...
    
    }

      或者使用如下方式:

    using ESRI.ArcGIS.Geoprocessor;
    using ESRI.ArcGIS.AnalysisTools;
    
    public void SampleEraseTool_2()
    {
    
        Erase eraseTool = new Erase();
        eraseTool.in_features = @"C:\Data\Input.shp";
        eraseTool.erase_features = @"C:\Data\Erase.shp";
        eraseTool.out_feature_class = @"C:\Data\output.shp";
    
        // TODO: Add your code here...
    
    }

      运行GP工具

      每一个GP工具都有各自的一组固定的参数,用于给工具的正确运行提供必要的信息。通常都有一些输入参数用来界定原始数据集,而这些数据集一般用于计算生成一个新的输出数据集。参数有一些重要的属性:

    • Name——每个参数都有一个唯一的名称。
    • Type——数据类型,比如要素类、整型、字符串、栅格等。
    • Required——指定该参数是可选的还是必须的。

      在程序中只用GP工具时,必须保证工具的参数值都被正确的指定,这样在程序运行的时候才能执行该GP工具。每一个工具的说明中都详细说明了其参数和各参数的类型。一旦给工具指定了有效的参数值,该工具就可以被执行了。

      一般是以字符串或者对象来精确的指定参数值,字符串参数的常见形式是数据集的路径或其关键字。大多数的工具参数都是以一个简单的字符串来指定的,然而一些较为复杂的参数,比如空间参考,以一个对象来指定它显得更为简便。下面是一个Buffer示例,以字符串的形式指定了其输入参数、输出参数和缓冲距离。该工具的Excute方法使用null引用替代了ITrackCancel揭接口类型的参数。

    using ESRI.ArcGIS.Geoprocessor;
    using ESRI.ArcGIS.AnalysisTools;
    
    public void SampleBufferTool()
    {
    
        // Initialize the geoprocessor. 
        Geoprocessor GP = new Geoprocessor();
    
        ESRI.ArcGIS.AnalysisTools.Buffer bufferTool = new
            ESRI.ArcGIS.AnalysisTools.Buffer();
    
        bufferTool.in_features = @"D:\St_Johns\data.mdb\roads_Buffer";
        bufferTool.out_feature_class = @"D:\St_Johns\data.mdb\roads";
        bufferTool.buffer_distance_or_field = "distance";
    
        GP.Execute(bufferTool, null);
    
    }

      工具箱名称和命名空间

      系统工具箱的名称和其对应的命名空间的关系见下表:

      

      运行自定义GP工具

      通过工具名称来执行工具

  • 相关阅读:
    异步--记录
    css过渡——实现元素的飞入飞出
    使用touch操作图片
    .net mvc中epplus导出excel
    html无卡顿动画实现——requestAnimationFrame
    调用手机摄像头并上传图片--jquery ajax
    jquery form表单赋值封装
    记录
    .net mvc 使用 aspose.cells导出数据
    explain简介
  • 原文地址:https://www.cnblogs.com/hans_gis/p/2039457.html
Copyright © 2011-2022 走看看