AnyLogic:如何在上层代理的 GIS 地图上移动代理演示文稿

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

我在 Windows 10 上的项目中使用 AnyLogic 8.7.0 Professional 进行代理建模。

我在

Bus
“内部”放置了一个代理(假设为
Passenger
)和多个代理(
Bus
),并且
Bus
直接显示在GIS地图上的
Main
代理下。代理级别示意图如下:

+ Projects
|- Main
|  |- Agents
|  |  |- bus
|  +- Presentation
|     |- level
|     |- map
|     +- bus_presentaion
|- Bus
|  |- Agents
|  |  +- passengers[..]
|  |- Presentation
|  |  +- passengers_presentaion
|  +- ...
|- Passenger
|  +- ...

当将

moveTo(lat, lon)
函数与
Bus
一起使用时,它可以在 GIS 地图上正确显示动画,而将
moveTo(lat, lon)
函数与
Passenger
一起使用时,
Passenger
只会移动到
Bus
的相对坐标(以像素为单位),而不是比上层代理 GIS 地图上的特定(纬度、经度)点,即
Main

我尝试将

Bus
代理的“空间和网络 - 空间类型”从“连续”切换为“GIS”,结果在
Bus
代理中创建了另一个 GIS 地图。而
passengers
群体的“高级-可见”中的“上层代理可见”似乎也不是解决方案。

如何使乘客在

Main
代理中的 GIS 地图上以动画形式显示,并指定到达特定 GIS 点的 GIS 路线,而不将
Passenger
直接放入
Main
代理中?

gis anylogic
1个回答
0
投票

你无法随心所欲地做你想做的事。

如果乘客住在公交车内,他们会相对于公交车移动。

为了使它们相对于 GIS 坐标移动,它们必须位于 Main 中。

我要做的就是在 Main 中添加空乘客,当乘客需要在 GIS 中移动时,你就这么做

agent.goToPopulation(main.passengers);

当他们回到巴士上时,你可以做

agent.goToPopulation(bus.passengers);
© www.soinside.com 2019 - 2024. All rights reserved.