如何在GIS地图中为每个City代理计算最近的Port代理
解决每个City代理获取最近Port的问题
把
getNearestAgent函数移到Cidade(City)代理内部
你之前的函数可能定义在全局层级(比如Main),导致只能基于第一个City的位置计算。将函数放在Cidade代理里后,每个Cidade实例调用时,会自动以自身的GIS坐标为基准,从main.portoes群体中找到最近的Porto代理。函数代码保持不变:return getNearestAgent(main.portoes);批量为所有City计算并存储最近Port
如果需要在模型启动时就完成所有City的最近Port计算,可在Main的On startup事件中添加遍历逻辑:for(Cidade cidade : cidades) { Porto nearestPorto = cidade.getNearestAgent(main.portoes); // 将结果存入Cidade的自定义变量,比如 cidade.nearestPort = nearestPorto; }验证GIS坐标配置
确保所有Cidade和Porto代理的GIS位置已正确绑定从数据库加载的latitude和longitude参数,这是getNearestAgent能准确计算距离的前提。
内容的提问来源于stack exchange,提问作者LeticiaMello
相关产品推荐
相关产品推荐

