Android - 室内寻路建议

Android - Indoor Pathfinding suggestions

我目前正在从事室内寻路项目。你可以这样想象: enter image description here

在我的应用程序中,我有两个搜索视图,一个是起始房间,一个是目标房间,我已经实现了。进入这两个房间后,应用程序应启动一个算法,例如 A*,以计算这两个房间之间的最短路径。突然间,用户可以看到这两个房间之间有一条画线。

关于如何在 Android 上实现 A* 算法,如图所示,您有什么建议吗?

A*算法依赖于图论

因此,首先您应该将您的房间绘制成图表(每个 room/floor 是一个顶点或节点,每扇门都是一条边)。我建议你为此使用众所周知的实现(here 是一个例子)。

根据您的架构,您的图表应该如下所示

保留一个 HashMap(或其他东西)来跟踪哪个房间映射到哪个节点,以及哪个走廊链接到哪个边。

然后,当你使用调用路径时,计算你的A*算法。我链接给你的例子看起来像这样

List<Node> path = aStar.findPath();

将节点列表重新映射回房间列表,并将其显示给您的用户。

注意:如果你想让它非常干净,你可以重写 AStar.java 以接受 Room 的列表,并让它吐出另一个 [=12] 的列表=].