zoukankan      html  css  js  c++  java
  • ArcGIS Engine开发序列:在C#中调用GeoProcessor的方法(转)

    为了降低开发难度和提高开发效率,ArcGIS Engine 9.2中添加了GeoProcessor类,该类的作用ESRI的帮助文档中的说明为:A geoprocessing tool is executed by a geoprocessorThe geoprocessor is a helper object that simplifies the task of executing tools. Toolboxes define the set of tools available for the geoprocessor. Toolboxes can be added and removed from the geoprocessor.其意思大概就在是用GeoProcessor能帮助用户直接实现一些简单的工具性的功能,所有在ArcToolBox中的功能,基本都可以用GeoProcessor编程实现。

       GeoProcessor在编程中用起来,有时候有些麻烦,因为其参数都是这通过SetEnvironmentValue (string environmentName, object Value )函数来实现的,而environmentName是字符型,因此具体需要设置什么变量,以及变量的值该怎么给,很多时候需要经验以及对ArcToolBox的熟悉程度来决定了。
        在使用GeoProcessor时,一般需先定义一个GeoProcessor对象,然后设置该对象的参数,再定义一个具体的操作类,如:Delete,Addjoin等,具体包含哪些操作类,可通过ArcToolBox和ESRI的帮助文档查找。在设置完操作类的参数后,则通过GeoProcessor的Excute函数来执行。
       下面以一个JoinTable(将两张表关联为一个表)的例子来做一个具体分析。

        Geoprocessor pGp = new Geoprocessor();//定义GeoProcessor对象

        //设置参数
        pGp.OverwriteOutput = true;

        //“workspace“参数,pWS为IWorkspace对象(注意:只有当pWS通过创建*.sde文件的方式生成连接时,PathName才会有值,否则为空)

        pGp.SetEnvironmentValue("workspace", pWS.PathName); 

        //创建工具
        AddJoin pJoin = new AddJoin();
         //设置相关参数

         ILayer pInLayer = null;

         pJoin.in_layer_or_view = pInLayer;
         pJoin.in_field = strInFldName;

         pJoin.join_table = strJoinTblName;
         pJoin.join_field = strJoinFldName;

          //执行
          pGp.Execute(pJoin, null);
          //将关联后的Layer返回

          return pInLayer;

        本例子中,为了节省空间,没有将一些异常处理的代码加上,在具体的应用中,需要有捕获异常和处理异常的代码。

  • 相关阅读:
    如何将一个HTML页面嵌套在另一个页面中
    error while loading shared libraries: cannot restore segment prot after reloc: Permission denied错误原因[转]
    Sharepoint2007中的甘特图
    在Sharepoint2007新建站点
    开发Sharepoint2007的Webpart备忘
    厦门.NET俱乐部活动和准备Micorsoft TechReadyVisual Studio Team System深度培训有感
    Sharepoint2007中的用户选择器
    User Group Ready To Rock as well
    Sharepoint2007(OSS2007)重新学过
    Sharepoint2007列表中的目录
  • 原文地址:https://www.cnblogs.com/weihongli/p/2132301.html
Copyright © 2011-2022 走看看