Random 在Anylogic中分配随机GIS位置

Random 在Anylogic中分配随机GIS位置,random,location,gis,point,anylogic,Random,Location,Gis,Point,Anylogic,我目前正在Anylogic中开发一个基于代理的模型,该模型由多个商店组成,每个商店和下订单的客户分配一个驱动程序,然后这些订单从最近的商店交付给他们 我已经创建了一个具有特定订单频率事件的代理类型“Customer”。我知道anylogic允许通过在GIS地图上放置节点、搜索地图上的位置名称或通过编程方式定义位置(setLocation(INodenode)、setLocation(Point Point)、setLocation(agent agent)和setLatLon(双纬度、双经度))

我目前正在Anylogic中开发一个基于代理的模型,该模型由多个商店组成,每个商店和下订单的客户分配一个驱动程序,然后这些订单从最近的商店交付给他们

我已经创建了一个具有特定订单频率事件的代理类型“Customer”。我知道anylogic允许通过在GIS地图上放置节点、搜索地图上的位置名称或通过编程方式定义位置(setLocation(INodenode)、setLocation(Point Point)、setLocation(agent agent)和setLatLon(双纬度、双经度))为代理分配GIS位置

但是,我想在每次生成订单时为客户分配一个随机的地理信息系统位置“地理信息系统节点”。我想知道是否有某种功能可用于执行此操作或其他任何方式


非常感谢您的帮助

>我不认为你想要一个随机的位置在全世界,因为你没有客户在太平洋中部,珠峰的顶部,白宫或南极的某个点。p> 因此,您真正想要做的是定义一个GIS区域,这是您可以在找到GIS点的同一位置找到的元素之一,您可以在地图上选择客户可以存在的区域,然后您可以选择一个随机点:

region.randomPointInside()

但是请记住,必须计算到每个随机点的路线,因此如果有太多的随机点和到这些点的传递,这可能会非常慢,因为路线每次都会计算…

您可以在:代理操作中使用此代码,启动时:

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

如果您得到的“区域”无法解析,您应该在主树、演示文稿、地图中进行检查,如果“区域”名称不存在,则表示您尚未创建它。您可以转到托盘,空间标记并使用GIS区域绘制所需的区域。

这是一个好主意,我将尝试一下,但是我应该将此函数返回的点保存在哪里?该函数返回一个点。。因此,您可以轻松保存itI。我创建了一个空的代理群体,并在地图上为此群体分配了一个区域。然后我创建了一个order frequency事件,并在事件的操作框中输入了提到的函数(Amman.randomPointInside()),但无法解析区域“Amman”的名称。我应该在另一个地方写函数吗?