Geoprocessing 消息机制

简介:

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

}

本文转自Flyingis博客园博客,原文链接:http://www.cnblogs.com/flyingis/archive/2007/04/12/710309.html,如需转载请自行联系原作者

相关文章
|
移动开发 编解码 监控
mmkv跨进程,Android开发经验的有效总结,系列篇
mmkv跨进程,Android开发经验的有效总结,系列篇
|
6月前
|
API
27 QT -消息机制与事件总结
27 QT -消息机制与事件总结
40 0
|
7月前
|
Windows
|
消息中间件 Windows
Windows编程——消息机制
Windows编程——消息机制
201 0
|
消息中间件 存储 缓存
深入理解 Handler 消息机制
深入理解 Handler 消息机制
|
消息中间件 存储 安全
深入理解Android消息机制
深入理解Android消息机制
886 6
深入理解Android消息机制
|
Windows
MFC消息机制
何谓消息、消息处理函数、消息映射?消息简单的说就是指通过输入设备向程序发出指令要执行某个操作。具体的某个操作是你的一系列代码。称为消息处理函数。 在SDK中消息其实非常容易理解,当窗口建立后便会有一个函数(窗口处理函数)开始执行一个消息循环,我们还可以清楚的看到消息处理的脉络。
1000 0
|
消息中间件 中间件 Kafka
|
消息中间件 C++ Windows