指定在GIS地图上放置的代理程序中生成的代理程序的位置

问题描述 投票:0回答:1

所以在这个模型中,我有几个医院代理人随机放在一个区域。这些医院包含一个流程流,并且在此流程流中的某个时刻,使用拆分块生成新的代理“骨骼”。通过将它们设置为等于医院的(x,y)坐标来正确指定这些骨骼代理的位置。

现在我想通过将医院放在GIS地图中的实际位置来使模型更加真实。我成功地做到了这一点。但是,现在我需要重新指定Bones-agents的位置。在生成第一个Bones-agent时,我收到以下错误:

root.Hospital1.splitblock: 
Error when trying to initialize new agent 
Caused by: root.Hospital2: 
This agent is already defined as agent living in space 'Continuous, based on 
GIS map' and can't have behaviour for space 'Continuous'This agent is already 
defined as agent living in space 'Continuous, based on GIS map' and can't 
have behaviour for space 'Continuous'

我需要做些什么来完成这项工作?我尝试使用以下功能将Bones-agent的位置设置为等于医院代理的经度和纬度:

double longitude = getLongitude();
return longitude;

我为het纬度做了同样的事情。然后我在分割块的“纬度”字段中输入这些函数。

anylogic
1个回答
1
投票

在开发模型时,您必须选择要使用的空间类型。请记住,放置代理的所有画布,以及地图和内容都基于比例,因此您不能将地图与使用空间标记创建的元素混合(空格标记我指的是节点,路径,矩形节点等)。

因此,骨骼代理也应该放在地图中......似乎你没有这样做,而你可能正在使用空间标记来放置骨骼代理。

但是当然可以这样做,但你必须在另一个代理人那里做。例如,创建一个名为continuousSpace的新代理,并将您的骨骼代理放在那里。

之后,您将不得不使用viewAreas(从演示文稿调色板)创建一个导航按钮,以从一个代理移动到另一个代理(意味着从gis空间到标记空间)。

否则,您也可以将分娩者放置在gis空间(在地图中),它也可以工作。

祝好运 :)

© www.soinside.com 2019 - 2024. All rights reserved.