Search code examples
gisanylogic

Messages between agents in Anylogic GIS environment


In the Anylogic GIS environment, I want to send a message to the agents that are close to the agent that sends the message. Is it possible to send a message to more than one agent within a certain distance in a GIS environment?

Thanks,

I used send("msg", this.getNearestAgent(agents)); but it only sends the message to the one nearest agent and not the nearest ones.


Solution

  • You will need to create your own function for this. I created the following one with the agent type called MyAgent so replace MyAgent with whatever Agent Type you are using:

    for( MyAgent m : myAgents ) {
    
        if( agent.distanceTo(m) < 1000000 && agent != m ) { 
            send("msg", m);
        }
    }
    

    Note that distanceTo returns a distance in meters. I also the second condition in the if statement to make sure the agent doesn't send a message to itself. Finally, make sure to add an argument to your function as shown below.

    enter image description here