我如何向居住在一个特定 GIS 区域的人员发送命令?考虑有几个 GIS 区域

How I can send command to the person agents living in one specific GIS region? Consider there are several GIS regions

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

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

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

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

这是假设您在 Agent 内部执行此操作(因此 main.this.)并且您要查找的区域名为 gisRegion1