0

假设 4 (a,b,c,d) GIS 区域有 1000 个人代理。在某个事件中,我想与居住在 GIS 区域 "a" 内的所有代理进行通信。在“a”区域中,我们有 200 个人员代理。如果我向人员状态图发送消息或命令,我如何确保只有居住在该特定 GIS 区域“a”的 200 个人员代理收到我的命令?有什么方法可以建模吗?

4

1 回答 1

1

您可以在代理的状态图转换中过滤消息,以便仅在某个表达式为真时执行转换(在您的情况下:代理位于正确的区域)。

过滤器转换执行

当然,您也可以在许多其他地方进行此过滤,例如在发送消息时或在接收消息时。但是,您始终可以使用此代码来检查代理是否位于 GISRegion 内部:

main.gisRegion1.contains(this.getLatitude(), this.getLongitude())

这是假设您在代理内部执行此操作(因此main.this.),并且您正在寻找的区域名为gisRegion1

于 2020-01-08T12:13:50.703 回答