Как я могу отправить команду агентам, проживающим в одном указанном c регионе ГИС? Считайте, что есть несколько областей ГИС - PullRequest
0 голосов
/ 07 января 2020

Предположим, есть агент 1000 человек на 4 (a, b, c, d) области ГИС. На определенном мероприятии я хочу общаться со всеми агентами, живущими в регионе ГИС "а". В «а» регионе у нас есть 200 человек-агентов. Если я отправляю сообщение или команду в диаграмму состояния человека, как я могу убедиться, что только те 200 человек-агентов, которые живут в этом конкретном c регионе ГИС "а", получают мою команду? Есть ли способ смоделировать это?

1 Ответ

1 голос
/ 08 января 2020

Вы можете фильтровать сообщения внутри перехода диаграммы состояния агента, чтобы выполнить переход только тогда, когда определенное выражение истинно (в вашем случае: агент находится в правильном регионе).

Filter transition execution

Конечно, вы можете выполнить эту фильтрацию и во многих других местах, например, при отправке сообщения или при его получении. Однако вы всегда можете использовать этот код, чтобы проверить, находится ли Агент внутри GISRegion:

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

Это предполагает, что вы выполнили это внутри Агента (следовательно, main. и this.) и регион, который вы ищете, называется gisRegion1 .

...