Указание местоположения агентов, которые создаются в агенте, размещенном на карте ГИС - PullRequest
0 голосов
/ 11 сентября 2018

Итак, в этой модели у меня есть несколько госпитальных агентов, которые размещаются случайным образом в области.Эти больницы содержат поток процесса, и в какой-то момент в этом процессе процесса генерируется новый агент «Кости», используя разделенный блок.Местоположение этих агентов-костей правильно указывается путем установки его равным (x, y) координатам больницы.

Теперь я хочу сделать модель более реалистичной, поместив больницы в фактическое местоположение вГИС карта.Я сделал это с успехом.Однако теперь мне нужно заново указать местонахождение Кости-Агента.В момент генерации первого агента Bones я получаю следующую ошибку:

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 равным долготе и широте агента больницы с помощью функции:

double longitude = getLongitude();
return longitude;

Я сделал то же самое для гетерогенности.Затем я ввел эти функции в поля «широта» блока разделения.

1 Ответ

0 голосов
/ 11 сентября 2018

Когда вы разрабатываете модель, вы должны выбрать, какое пространство вы будете использовать.Помните, что все полотна, в которые вы помещаете агентов, а также карту и прочее, основаны на масштабе, поэтому вы не можете смешивать карту с элементами, которые созданы с разметкой пространства (с разметкой пространства я имею в виду узлы, пути, прямоугольныеузлы и т. д.).

Таким образом, агенты по костям также должны быть размещены на карте ... Похоже, вы этого не делаете, и вы, вероятно, размещаете агента по костям с помощью разметки пространства.

Но этоМожно сделать это, конечно, но вы должны сделать это в другом агенте.Например, создайте новый агент с именем ContinentalSpace и разместите там свои костные агенты.

После этого вам нужно будет создать навигационную кнопку, используя viewAreas (из палитры презентации) для перехода от одного агента к другому (то есть из пространства ГИС в пространство разметки).

В противном случае вы также можете поместить агенты из кости в пространство ГИС (на карте), и это также сработает.

Удачи:)

...