Назначение случайного местоположения ГИС в Anylogic - PullRequest
0 голосов
/ 07 марта 2019

В настоящее время я работаю над моделью на основе агента в Anylogic, которая состоит из нескольких магазинов с драйвером, назначенным для каждого магазина, и клиентов, которые размещают заказы, и эти заказы затем доставляются им из ближайшего магазина.

Я создал агент типа «Клиент» с определенной частотой заказа. Я знаю, что anylogic позволяет назначать местоположение ГИС для агента путем размещения узла на карте ГИС, поиска имени местоположения на карте или путем определения местоположения программно (setLocation (INodenode), setLocation (Point point), setLocation (Агент агента) & setLatLon (двойная широта, двойная долгота)).

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

Любая помощь высоко ценится.

Ответы [ 2 ]

1 голос
/ 12 апреля 2019

Вы можете использовать этот код в: Действия агента, При запуске:

Point pt = get_Main().region.randomPointInside();
setXYZ( pt.x, pt.y, pt.z );

Если вы видите, что «регион» не может быть разрешен, вы должны проверить в Главном дереве, презентации, карте, если имя «регион» отсутствует, это означает, что вы еще не сделали это. Вы можете перейти к Pallet, Space Markup и использовать GIS Region, чтобы нарисовать нужный регион.

0 голосов
/ 07 марта 2019

Я не думаю, что вам нужно случайное местоположение во всем мире, поскольку у вас нет клиентов в середине Тихого океана, на вершине горы Эверест, в белом доме или в каком-то другом месте Антарктики.

Итак, что вы действительно хотите сделать, это определить область ГИС, которая является одним из элементов, которые вы можете найти в том же месте, где вы находите точку ГИС, с помощью которой вы можете выбрать на карте регион, в котором ваши клиенты могут существовать, и тогда вы можете просто выбрать случайную точку:

region.randomPointInside()

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

...