Flyingis

          Talking and thinking freely !
          Flying in the world of GIS !
          隨筆 - 156, 文章 - 16, 評論 - 589, 引用 - 0
          數據加載中……

          Geoprocessing 消息機制

              作者:Flyingis

              ArcToolbox每個工具執行之后,都會向Geoprocessor返回消息,包括操作何時開始,使用哪些參數,操作的進度,以及可能出現的問題和錯誤。消息的種類包括常規消息、警告、錯誤,GPMessage類可以包含消息的文本及嚴重等級。

              首先,Geoprocessor.getMessage()方法可以捕獲最后一個工具執行后返回的錯誤消息

          String messages = gp.getMessages(2);
          System.out.println(messages);

              如何使用GPMessage

          //if there was an error then you want to loop the messages
          //returned by the geoprocessor to look for the error
          GPMessages gpMessages = (GPMessages)gp.getReturnMessages();
          for(int i = 0;  i gpMessages.getCount(); i++{
                System.out.println(gpMessages.getMessage(i).getDescription());
          }

              可以看出,上面都是通過GeoProcessor的方法來獲取消息,除此之外還可以使用IGeoProcessorResult接口,從功能上來說它們沒有多少區別。

          // Execute Union
          IGeoProcessorResult pResult = gp.execute(uniontool, null); 
          if (pResult.getMessageCount() > 0)  
                
          for(int i = 0;  i <= pResult.getMessageCount() - 1; i++){
                      System.out.println(pResult.getMessageCount());
                }

          }

              另外我們還可以自定義輸出的方法,根據程序執行的過程,可以添加的方法有AddMessage、AddWarning、AddError。下面的示例將feature class從一個工作區復制到另外一個工作區,并跟蹤顯示每個文件復制的情況。

          IGpEnumList fcs = gp.listFeatureClasses("""","");
          Copy copy 
          = new Copy();
          String fc 
          = fcs.next();
          while (! "".equals(fc)){
                gp.addMessage(
          "Copying " + fc + " to file gdb" );
                copy.setInData(fc);
                copy.setOutData(
          "C:/temp/eric.gdb" + "/" + fc);
                
          try {
                      gp.execute(copy, 
          null);
                }
           catch (Exception e) {
                      gp.addError(
          "COPY FAILED! " + gp.getMessage(2));
                }

                fc 
          = fcs.next();
          }

          posted on 2007-04-10 15:58 Flyingis 閱讀(3602) 評論(0)  編輯  收藏 所屬分類: ArcEngine

          主站蜘蛛池模板: 土默特右旗| 陆良县| 司法| 准格尔旗| 石狮市| 乌拉特后旗| 扶风县| 东明县| 乌海市| 紫云| 青川县| 庄河市| 丹阳市| 开封县| 茌平县| 夹江县| 岳阳市| 龙门县| 会东县| 舒城县| 长治市| 瓦房店市| 大名县| 出国| 阳原县| 北碚区| 宜阳县| 舒兰市| 延长县| 卓尼县| 金乡县| 宁阳县| 晋宁县| 镇沅| 菏泽市| 南郑县| 银川市| 托克托县| 长沙县| 石河子市| 绥芬河市|