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();
ExpandedBlockStart.gifContractedBlock.gif
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 ); 
ExpandedBlockStart.gifContractedBlock.gif
if  (pResult.getMessageCount()  >   0 )  
ExpandedSubBlockStart.gifContractedSubBlock.gif 
for(int i = 0;  i <= pResult.getMessageCount() - 1; i++){
  System.out.println(pResult.getMessageCount());
 }

}

    另外我们还可以自定义输出的方法,根据程序执行的过程,可以添加的方法有AddMessage、AddWarning、AddError。下面的示例将feature class从一个工作区复制到另外一个工作区,并跟踪显示每个文件复制的情况。

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

}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值