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 閱讀(3590) 評論(0)  編輯  收藏 所屬分類: ArcEngine

          主站蜘蛛池模板: 金湖县| 漳州市| 屯昌县| 青阳县| 应用必备| 岢岚县| 容城县| 麻江县| 天全县| 星子县| 赞皇县| 威远县| 西乌珠穆沁旗| 庆云县| 高淳县| 焦作市| 汤原县| 花莲县| 枞阳县| 攀枝花市| 宣化县| 扶沟县| 香格里拉县| 乌什县| 肇源县| 永泰县| 逊克县| 若羌县| 德格县| 宁河县| 佛教| 梁河县| 嫩江县| 关岭| 四会市| 巢湖市| 镇平县| 浮山县| 彭州市| 涞水县| 剑阁县|