我是一名学生使用AnyLogic 7 University 7.3.6进行模拟项目。
在我的项目中,我希望能够在一个地理区域(一个城市,特别是斯德哥尔摩,瑞典首都)分发代理(人员),并将它们放置在想象中的家庭中#34;。我知道您可以使用openstreetmaps将地图加载到任何逻辑中,我希望能够真实地分发具有该地图不同位置的人。
我想知道的是:
是否可以从openStreetMaps或任何其他类似的来源加载城市的地理地图,编写可以提取该地理区域中不同地区或城市的代码,并将其保存为集合?
我的猜测是有可能但很难。
例如,斯德哥尔摩(瑞典首都)由26个市镇组成。我希望能够加载斯德哥尔摩的地图,编写可以发现斯德哥尔摩内不同城市名称的代码(或者正在使用的城市地图),确定该地图中有多少个地区或城市(本节中有26个) case)以及它们的名字,将它们保存到一个集合中,然后为每个市政府找到该市政府的所有街道名称。
当我拥有一个城市的所有城市以及所有(或大部分)街道名称时,我可以使用街道名称将我的代理人放置在不同的街道上。
我希望能够在每个城市安置不同数量的代理人(人),并且不得将它们放置在不切实际的位置(例如水或地形),因此我认为我需要街道名称,以便我可以逼真地将它们放在想象中的家中#34;
我还没有找到任何有价值的信息,但我正在尝试。如果有人有任何建议,将不胜感激!
答案 0 :(得分:0)
我做了类似的事情。
要做到这一点,你需要创建一个shapefile,其中包含你需要的所有信息(市政当局将是shapefile的一层(多边形),街道将是另一层(折线))你将使用AnyLogic读取该shapefile你可以根据它生成随机家园。
您需要在ArcGis中找到并使用专家来帮助您根据需要创建shapefile。我不是ArcGis的专家,但我有人为我创建了shapefile,所以这将是第一步。
稍后(第二步),您必须学习如何在AnyLogic中将shapefile加载到地图中时读取shapefile,并将shapefile图层转换为地图上可见的区域和线条...您开始使用getLayers()函数...您必须将shapefile转换为可在AnyLogic中轻松使用的标记。
在一天结束时,你的问题需要很多东西,所以也许这个答案会指出你正确的方向,让你退出项目或无用......或者你可以找到一个不同的,更简单的方法简化你的项目,而不需要那么多的parafernalia。