问题:我有带有 的数据库表(导入的 excel)订单 和 地点 .订单有一个名为“destination”的列,它被交叉引用(使用“外键”来引用locations.location)到位置列地点 应该代表实际 INode 的表。如何在 moveTo block 中指定此地址?
最佳答案
你不能表示像 INode
这样的 AnyLogic 对象作为数据库条目。相反,您可以存储有关节点的特征并在模型开始时以编程方式创建节点。
所以存储诸如 X/Y 坐标之类的东西。
下面是一个 GIS 点的示例,向您展示了该方法。您需要为 INode 做类似的事情(查看 INode API 的 AnyLogic 帮助以了解如何创建它们)。
我将位置名称作为字符串存储在 dbase 中:
在模型启动时,我以编程方式创建 GISPoint
数据中的元素(假设我有一个名为 map
的 GIS map ):
List<Tuple> rows = selectFrom(routes)
.list();
for (Tuple row : rows) {
GISPoint locationFrom = map.searchFirst(row.get( routes.location_from ));
GISPoint locationTo = map.searchFirst(row.get( routes.location_to ));
map.add(locationFrom);
map.add(locationTo);
GISRoute route = map.getRoute(locationFrom.getLatitude(), locationFrom.getLongitude(),
locationTo.getLatitude(), locationTo.getLongitude());
route.setLineColor( spectrumColor(uniform_discr(1,10), 10) );
}
关于excel - 使用数据库时如何使用 Anylogic 对象 (INode) 作为类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59167557/